Docker基本命令匯總-曬酷學(xué)院

Docker的三大核心概念:鏡像偷俭、容器浪讳、倉庫

鏡像:類似虛擬機(jī)的鏡像、用俗話說就是安裝文件涌萤。

容器:類似一個(gè)輕量級(jí)的沙箱淹遵,容器是從鏡像創(chuàng)建應(yīng)用運(yùn)行實(shí)例口猜,可以將其啟動(dòng)、開始透揣、停止济炎、刪除、而這些容器都是相互隔離辐真、互不可見的须尚。

倉庫:類似代碼倉庫,是Docker集中存放鏡像文件的場所侍咱。

1.設(shè)置docker自啟動(dòng)

使用yum安裝好docker后恨闪,設(shè)置開機(jī)啟動(dòng)。

[root@CentOS ~]# systemctl enable docker

2.docker的啟動(dòng)放坏、停止、重啟

[root@localhost ~]# service docker restart
Redirecting to /bin/systemctl restart docker.service
[root@localhost ~]# service docker stop
Redirecting to /bin/systemctl stop docker.service
[root@localhost ~]# service docker start
Redirecting to /bin/systemctl start docker.service

3.docker鏡像

docker search <image>用于搜索線上鏡像倉庫老玛,這樣就可以搜索出在Docker Hub上所有帶redis的公共的可用鏡像淤年。

[root@CentOS ~]# docker search redis
INDEX       NAME                                           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/redis                                Redis is an open source key-value store th...   5472      [OK]
docker.io   docker.io/bitnami/redis                        Bitnami Redis Docker Image                      82                   [OK]
docker.io   docker.io/sameersbn/redis                                                                      68                   [OK]
docker.io   docker.io/tenstartups/redis-commander                                                          32                   [OK]
docker.io   docker.io/hypriot/rpi-redis                    Raspberry Pi compatible redis image             31
docker.io   docker.io/kubeguide/redis-master               redis-master with "Hello World!"                25
docker.io   docker.io/kubeguide/guestbook-redis-slave      Guestbook redis slave                           20
docker.io   docker.io/redislabs/redis                      Clustered in-memory database engine compat...   15
docker.io   docker.io/webhippie/redis                      Docker images for redis                         9                    [OK]
docker.io   docker.io/arm32v7/redis                        Redis is an open source key-value store th...   7
docker.io   docker.io/rediscommander/redis-commander       Alpine image for redis-commander - Redis m...   7                    [OK]
docker.io   docker.io/oliver006/redis_exporter              Prometheus Exporter for Redis Metrics. Su...   5
docker.io   docker.io/rtoma/logspout-redis-logstash        Logspout including Redis adapter for sendi...   5
docker.io   docker.io/centos/redis-32-centos7              Redis in-memory data structure store, used...   3
docker.io   docker.io/dynomitedb/redis                     Redis backend for DynomiteDB.                   2                    [OK]
...

docker pull <image>拉取服務(wù)器鏡像倉庫里的鏡像。

[root@CentOS ~]# docker pull redis
Using default tag: latest
Trying to pull repository docker.io/library/redis ...
latest: Pulling from docker.io/library/redis
be8881be8156: Pull complete
d6f5ea773ca3: Pull complete
735cc65c0db4: Pull complete
ff89c30e4d8c: Pull complete
59bf782a86b3: Pull complete
ce8aaa9fe90a: Pull complete
Digest: sha256:096cff9e6024603decb2915ea3e501c63c5bb241e1b56830a52acfd488873843
Status: Downloaded newer image for docker.io/redis:latest

不指定版本,默認(rèn)會(huì)下載最新的一個(gè)版本蜡豹。由于官方的鏡像在國外麸粮,有時(shí)網(wǎng)速較慢,所以推薦下載國內(nèi)的鏡像镜廉,比如阿里云弄诲,網(wǎng)易云。

docker push 推送本地鏡像到服務(wù)器娇唯。
查看鏡像

  • docker images:列出images
  • docker images -a:列出所有的images(包含歷史)
  • docker images --tree :顯示鏡像的所有層(layer)
  • docker rmi <image ID>:刪除一個(gè)或多個(gè)image

4.docker創(chuàng)建一個(gè)容器

上面介紹了docker鏡像的拉取齐遵,我們接下來看下如何創(chuàng)建一個(gè)容器。

docker run 命令格式

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]  
 
  -d, --detach=false         指定容器運(yùn)行于前臺(tái)還是后臺(tái)塔插,默認(rèn)為false   
  -i, --interactive=false   打開STDIN梗摇,用于控制臺(tái)交互  
  -t, --tty=false            分配tty設(shè)備,該可以支持終端登錄想许,默認(rèn)為false  
  -u, --user=""              指定容器的用戶  
  -a, --attach=[]            標(biāo)準(zhǔn)輸入輸出流和錯(cuò)誤信息(必須是以非docker run -d啟動(dòng)的容器)
  -w, --workdir=""           指定容器的工作目錄 
  -c, --cpu-shares=0        設(shè)置容器CPU權(quán)重伶授,在CPU共享場景使用  
  -e, --env=[]               指定環(huán)境變量,容器中可以使用該環(huán)境變量  
  -m, --memory=""            指定容器的內(nèi)存上限  
  -P, --publish-all=false    指定容器暴露的端口  
  -p, --publish=[]           指定容器暴露的端口 
  -h, --hostname=""          指定容器的主機(jī)名  
  -v, --volume=[]            給容器掛載存儲(chǔ)卷流纹,掛載到容器的某個(gè)目錄  
  --volumes-from=[]          給容器掛載其他容器上的卷糜烹,掛載到容器的某個(gè)目錄
  --cap-add=[]               添加權(quán)限,權(quán)限清單詳見:http://linux.die.net/man/7/capabilities  
  --cap-drop=[]              刪除權(quán)限漱凝,權(quán)限清單詳見:http://linux.die.net/man/7/capabilities  
  --cidfile=""               運(yùn)行容器后疮蹦,在指定文件中寫入容器PID值,一種典型的監(jiān)控系統(tǒng)用法  
  --cpuset=""                設(shè)置容器可以使用哪些CPU碉哑,此參數(shù)可以用來容器獨(dú)占CPU  
  --device=[]                添加主機(jī)設(shè)備給容器挚币,相當(dāng)于設(shè)備直通  
  --dns=[]                   指定容器的dns服務(wù)器  
  --dns-search=[]            指定容器的dns搜索域名亮蒋,寫入到容器的/etc/resolv.conf文件  
  --entrypoint=""            覆蓋image的入口點(diǎn)  
  --env-file=[]              指定環(huán)境變量文件,文件格式為每行一個(gè)環(huán)境變量  
  --expose=[]                指定容器暴露的端口妆毕,即修改鏡像的暴露端口  
  --link=[]                  指定容器間的關(guān)聯(lián)慎玖,使用其他容器的IP、env等信息  
  --lxc-conf=[]              指定容器的配置文件笛粘,只有在指定--exec-driver=lxc時(shí)使用  
  --name=""                  指定容器名字趁怔,后續(xù)可以通過名字進(jìn)行容器管理,links特性需要使用名字  
  --net="bridge"             容器網(wǎng)絡(luò)設(shè)置:
                                bridge 使用docker daemon指定的網(wǎng)橋     
                                host     //容器使用主機(jī)的網(wǎng)絡(luò)  
                                container:NAME_or_ID  >//使用其他容器的網(wǎng)路薪前,共享IP和PORT等網(wǎng)絡(luò)資源  
                                none 容器使用自己的網(wǎng)絡(luò)(類似--net=bridge)润努,但是不進(jìn)行配置 
  --privileged=false         指定容器是否為特權(quán)容器,特權(quán)容器擁有所有的capabilities  
  --restart="no"             指定容器停止后的重啟策略:
                                no:容器退出時(shí)不重啟  
                                on-failure:容器故障退出(返回值非零)時(shí)重啟 
                                always:容器退出時(shí)總是重啟  
  --rm=false                 指定容器停止后自動(dòng)刪除容器(不支持以docker run -d啟動(dòng)的容器)  
  --sig-proxy=true           設(shè)置由代理接受并處理信號(hào)示括,但是SIGCHLD铺浇、SIGSTOP和SIGKILL不能被代理 

實(shí)例:

[root@CentOS ~]# docker run -p 8090:8080 -p 50000:50000 --restart always --link Redis:redis --name jenkins -v /home/jenkins:/home/jenkins_home --privileged=true dokcer.io/jenkins/jenkins

-p:把容器的8080端口映射到宿主機(jī)8090上
-v:主機(jī)的目錄/home/jenkins映射到容器的目錄/home/jenkins_home
--name:給容器起個(gè)名字jenkins,docker.io/jenkins/jenkins是你下載的鏡像
--restart:always 容器退出時(shí)總是重啟
--privileged=true:掛載主機(jī)目錄Docker訪問出現(xiàn)Permission denied的解決辦法
--link:為redis容器起個(gè)別名Redis垛膝,訪問的時(shí)候使用別名Redis

5.查看docker容器

docker ps #查看正在運(yùn)行的容器

[root@CentOS ~]# docker ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                              NAMES
faa1b0be4e0b        docker.io/jenkins/jenkins   "/sbin/tini -- /us..."   15 hours ago        Up 4 seconds        0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   jenkins

docker ps -a #查看所有容器

[root@CentOS ~]# docker ps -a
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS                       PORTS                                              NAMES
45af2f4d1f82        docker.io/redis             "docker-entrypoint..."   15 hours ago        Exited (255) 3 minutes ago   0.0.0.0:6378->6379/tcp                             redis1
ffa152fb76cc        docker.io/redis             "docker-entrypoint..."   15 hours ago        Exited (255) 3 minutes ago   0.0.0.0:6379->6379/tcp                             redis
faa1b0be4e0b        docker.io/jenkins/jenkins   "/sbin/tini -- /us..."   15 hours ago        Up 2 minutes                 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   jenkins

6.啟動(dòng)鳍侣、停止、重啟吼拥、刪除docker容器

根據(jù)id和name對(duì)容器進(jìn)行操作

#啟動(dòng)容器
docker start <ContainerId(或者name)>
#停止容器
docker stop <ContainerId(或者name)>
#重啟容器
docker restart <ContainerId(或者name)>
#刪除容器
docker rm <ContainerId(或者name)>
#刪除所有容器
docker rm $(docker ps -a -q)

7.進(jìn)入docker容器

#進(jìn)入容器
docker exec -it containerID /bin/bash

ctrl+d 退出容器且關(guān)閉

ctrl+p+q 退出容器但不關(guān)閉

8.查看容器日志

docker logs -f -t --tail 行數(shù) 容器名

[root@CentOS ~]# docker logs -f -t --tail 10 redis #查看容器最后10行日志
2018-08-09T05:55:16.204504000Z 1:C 09 Aug 05:55:16.135 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2018-08-09T05:55:16.205232000Z 1:C 09 Aug 05:55:16.151 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=1, just started
2018-08-09T05:55:16.205822000Z 1:C 09 Aug 05:55:16.151 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
2018-08-09T05:55:16.206545000Z 1:M 09 Aug 05:55:16.199 * Running mode=standalone, port=6379.
2018-08-09T05:55:16.207152000Z 1:M 09 Aug 05:55:16.200 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
2018-08-09T05:55:16.207713000Z 1:M 09 Aug 05:55:16.200 # Server initialized
2018-08-09T05:55:16.208315000Z 1:M 09 Aug 05:55:16.200 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
2018-08-09T05:55:16.209055000Z 1:M 09 Aug 05:55:16.201 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
2018-08-09T05:55:16.209806000Z 1:M 09 Aug 05:55:16.201 * DB loaded from disk: 0.000 seconds
2018-08-09T05:55:16.210405000Z 1:M 09 Aug 05:55:16.202 * Ready to accept connections

9.Docker網(wǎng)絡(luò)操作

#在主機(jī)上創(chuàng)建一個(gè)網(wǎng)絡(luò)
docker network create mynet

#查看自定義bridge網(wǎng)絡(luò)
docker network inspect mynet

#移除網(wǎng)絡(luò)要求網(wǎng)絡(luò)中所有的容器關(guān)閉或斷開與此網(wǎng)絡(luò)的連接時(shí)倚聚,才能夠使用移除命令
docker network disconnet mynet 容器ID

#移除網(wǎng)絡(luò)
docker network rm mynet

10.Docker拷貝操作

宿主機(jī)和容器之間的拷貝操作使用 docker cp 命令,并且無論容器是否啟動(dòng)都生效

# 1.文件從宿主機(jī)拷貝到容器:    docker cp 宿主機(jī)文件路徑   容器名:存放路徑
docker cp /home/jenkins/test.txt jenkins:/var/jenkins_home

# 2.文件從容器拷貝到宿主機(jī)   docker cp 容器名:要拷貝的文件路徑  宿主機(jī)存放路徑  
docker cp jenkins:/var/jenkins_home/test.txt /home/jenkins
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凿可,一起剝皮案震驚了整個(gè)濱河市惑折,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌枯跑,老刑警劉巖惨驶,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異全肮,居然都是意外死亡敞咧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門休建,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人评疗,你說我怎么就攤上這事“俅遥” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長仑荐。 經(jīng)常有香客問我,道長纵东,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任偎球,我火速辦了婚禮洒扎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘衰絮。我一直安慰自己袍冷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布猫牡。 她就那樣靜靜地躺著胡诗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪淌友。 梳的紋絲不亂的頭發(fā)上乃戈,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音亩进,去河邊找鬼。 笑死缩歪,一個(gè)胖子當(dāng)著我的面吹牛归薛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播匪蝙,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼主籍,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了逛球?” 一聲冷哼從身側(cè)響起千元,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎颤绕,沒想到半個(gè)月后幸海,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奥务,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年物独,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氯葬。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挡篓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情官研,我是刑警寧澤秽澳,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站戏羽,受9級(jí)特大地震影響担神,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蛛壳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一杏瞻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧衙荐,春花似錦捞挥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽煌抒。三九已至,卻和暖如春寡壮,著一層夾襖步出監(jiān)牢的瞬間况既,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工悲靴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留莫其,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓否纬,卻偏偏與公主長得像临燃,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子膜廊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容