docker基本命令詳解

  • attach: 將標(biāo)準(zhǔn)輸入(stdin)與標(biāo)準(zhǔn)輸出(stdout)連接到正在運(yùn)行的容器
docker attach [OPTIONS] CONTAINER
# 創(chuàng)建容器
docker create -it --name centos-container centos /bin/bash
# 若想使用剛剛創(chuàng)建的容器,則必須使用docker start 命令啟動(dòng)容器
docker start centos-container
# 進(jìn)入容器內(nèi)部
docker attach centos-container
  • build: 使用Dockerfile文件創(chuàng)建鏡像
docker build <選項(xiàng)><Dockerfile路徑>
  • commit: 從容器的修改項(xiàng)創(chuàng)建顯得鏡像
docker commit <選項(xiàng)><容器名稱,id>/<鏡像名稱>:<標(biāo)簽>
  • cp: 用于將容器的目錄或文件復(fù)制的到主機(jī)。若將cp命令中的路徑設(shè)置為目錄,則將該目錄下的所有內(nèi)容復(fù)制到主機(jī)
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
# 將容器內(nèi)的整個(gè)/etc 目錄復(fù)制到主機(jī)當(dāng)前文件夾下
docker cp centos-container:/etc /home/long
  • create: 使用指定的鏡像創(chuàng)建容器。與run命令不同,使用create命令只能創(chuàng)建容器而并不啟動(dòng)
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

# 創(chuàng)建容器
docker create -it --name centos-container centos /bin/bash
# 若想使用剛剛創(chuàng)建的容器,則必須使用docker start 命令啟動(dòng)容器
docker start centos-container
# 進(jìn)入容器內(nèi)部
docker attach centos-container
# 退出容器
exit
# 停止容器
docker stop centos-container
  • diff: 檢查容器文件系統(tǒng)的修改(查看修改內(nèi)容)
docker diff <容器名稱,id>
# 示例
[root@localhost /home/long]# docker diff centos-container
C /run
A /run/secrets
C /root
A /root/.bash_history
  • events: 實(shí)時(shí)輸出Docker服務(wù)器中發(fā)生的事件
docker events
另一終端,運(yùn)行容器
docker start centos-container
此端輸出
2018-04-26T19:16:35.017678507-07:00 network connect b2376bcc00f587966645b362992289aa78ea58080ea6713a9a418b5f82e64c48 (container=24d1711909362e7620f9c76f266a671f1a7336452e88ff32c4942a4768801d79, name=bridge, type=bridge)
2018-04-26T19:16:35.622752724-07:00 container start 24d1711909362e7620f9c76f266a671f1a7336452e88ff32c4942a4768801d79 (build-date=20170911, image=centos, license=GPLv2, name=centos-container, vendor=CentOS)
  • exec: 用于從外部運(yùn)行容器內(nèi)部的命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
# 執(zhí)行
docker exec -it hello /bin/bash
ps -ef
  • export: 將容器的文件系統(tǒng)導(dǎo)出為tar文件包
docker export <容器名稱,id>
# 示例
docker export centos-container > centos-container.tar
  • history: 顯示鏡像的歷史。此處的歷史依據(jù)Dockerfile文件中的設(shè)置創(chuàng)建。
docker history <選項(xiàng)><鏡像名稱,id>
# 示例
[root@localhost /home/long]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    latest              33e02377a00f        2 weeks ago         553.8 MB
docker.io/nginx     latest              b175e7467d66        2 weeks ago         108.9 MB
docker.io/centos    latest              196e0ce0c9fb        7 months ago        196.6 MB
[root@localhost /home/long]# docker history tomcat
  • images: 查看所有鏡像
[root@localhost /home/long]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    latest              33e02377a00f        2 weeks ago         553.8 MB
docker.io/nginx     latest              b175e7467d66        2 weeks ago         108.9 MB
docker.io/centos    latest              196e0ce0c9fb        7 months ago        196.6 MB
  • import: 從壓縮為tar文件(.tar .tar.gz .tgz .bzip .tar.xz .txz)的文件系統(tǒng)創(chuàng)建鏡像
docker import <tar文件的URL或者 - ><注冊(cè)名稱>/<鏡像名稱>:<標(biāo)簽>
docker import centos-container.tar centos-container-2
cat centos-container | docker import - centos-container-2
  • info: 顯示當(dāng)前系統(tǒng)信息、docker容器、鏡像個(gè)數(shù)、設(shè)置等信息
docker info
  • inspect: 獲得更詳細(xì)的容器、鏡像或者任務(wù)信息
docker inspect <選項(xiàng)><容器或鏡像名稱,id>
# 示例
docker inspect centos-container
  • kill: 向容器發(fā)送KILL信號(hào),從而關(guān)閉容器(推薦使用更優(yōu)雅溫和的 docker stop 命令)
docker kill centos-container
  • load: 從tar文件或標(biāo)準(zhǔn)輸入中創(chuàng)建鏡像
docker load <選項(xiàng)>
# 示例
docker load -i centos-container.tar
  • login: 登錄Docker 的注冊(cè)服務(wù)器,若不設(shè)置注冊(cè)服務(wù)器的地址,則默認(rèn)登錄dockerhub
docker login <選項(xiàng)><Docker 注冊(cè)服務(wù)器的URL>
-e、--email="" 設(shè)置登錄時(shí)使用的電子郵件
-p、--password="" 設(shè)置登錄密碼
-u、--username="" 設(shè)置登錄時(shí)使用的賬號(hào)
  • logout: 從Docker注冊(cè)服務(wù)器中登出
docker logout <選項(xiàng)><Docker 注冊(cè)服務(wù)器的URL>
  • logs: 獲取容器日志
docker logs <容器名稱,id>
# 示例
docker logs centos-container
  • network: 管理docker的網(wǎng)絡(luò)系統(tǒng)
docker network COMMAND
# 示例
docker network ls
  • node: 管理docker的swarm集群節(jié)點(diǎn)
docker node ls
  • pause: 暫停容器中所有的進(jìn)程(可以是多個(gè)容器)
docker pause <容器名稱,id>
# 示例
docker pause centos-container
# 恢復(fù)
docker unpause centos-container
  • port: 查看容器的某個(gè)端口是否處于開放狀態(tài)
docker port <容器名稱,id><端口>
# 示例
docker port centos-container 8090
  • ps: 查看容器列表
docker ps <選項(xiàng)>
-a、--all=false 列出所有容器。不帶 -a 只輸出在運(yùn)行的容器
--before="" 列出特定容器創(chuàng)建前的容器,包含停止的容器。
-f、--filter=[] 設(shè)置輸出過(guò)濾。如 "exited=0"
-l、--latest=false 列出最后創(chuàng)建的容器,包含停止的容器
-q、--quiet=false 只輸出容器的id
# 示例
docker ps -a
  • pull: 從一個(gè)遠(yuǎn)程倉(cāng)庫(kù)拉取鏡像
docker pull <選項(xiàng)> <鏡像名>:<標(biāo)簽>
# 示例
docker pull nginx:latest
  • push: 將鏡像推送到Docker注冊(cè)服務(wù)器或者指定倉(cāng)庫(kù)
docker push <注冊(cè)名>/<鏡像名>:<標(biāo)簽>
docker pull 192.168.1.150:10000/centos-container:latest
  • rename: 修改某一個(gè)容器名字
docker rename  <容器名> <新容器名>
# 示例
 docker rename centos-container centos
  • restart: 重啟容器
docker restart <容器名稱,id>
docker restart centos-container
  • rm: 刪除容器
docker rm <容器名稱,id>
# 示例
docker ps -a
docker rm hello
docker ps -a
  • rmi: 刪除鏡像, 若不指定標(biāo)簽,則刪除latest標(biāo)簽
docker rmi <注冊(cè)名稱>/<鏡像名稱,id>:<標(biāo)簽>
# 示例
docker images
docker nginx
docker images
  • run: 使用命令行指定鏡像創(chuàng)建容器
docker run <選項(xiàng)><鏡像名稱,id><命令><參數(shù)>
# 示例
docker ps -a
docker run --name hello -i -t centos /bin/bash
docker ps -a
  • save: 將鏡像保存為tar包文件
docker save <選項(xiàng)><鏡像名稱>:<標(biāo)簽>
# 示例
[root@localhost /home/long]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    latest              33e02377a00f        2 weeks ago         553.8 MB
docker.io/nginx     latest              b175e7467d66        2 weeks ago         108.9 MB
docker.io/centos    latest              196e0ce0c9fb        7 months ago        196.6 MB
[root@localhost /home/long]# docker save nginx -o nginx.tar
[root@localhost /home/long]# ll
total 110028
drwxr-xr-x. 2 long long         6 Sep 28  2017 Desktop
drwxr-xr-x. 2 long long         6 Sep 28  2017 Documents
drwxr-xr-x. 2 long long         6 Sep 28  2017 Downloads
drwxr-xr-x. 2 long long         6 Sep 28  2017 Music
-rw-------. 1 root root 112667648 Apr 26 22:46 nginx.tar #生成了新的文件
drwxr-xr-x. 2 long long         6 Sep 28  2017 Pictures
drwxr-xr-x. 2 long long         6 Sep 28  2017 Public
drwxr-xr-x. 2 long long        61 Oct 17  2017 samba
drwxr-xr-x. 2 long long         6 Sep 28  2017 Templates
drwxr-xr-x. 2 long long         6 Sep 28  2017 Videos
[root@localhost /home/long]# 


  • search: 根據(jù)名字在docker hub搜索你要的鏡像
docker search <選項(xiàng)><搜索詞>
--automated=false 只顯示由docker hub 的automated build 創(chuàng)建的鏡像
--no-trunc=false 顯示所有因因?yàn)閮?nèi)容過(guò)長(zhǎng)而省略的部分
-s、--stars=0 顯示滴啊有特定星級(jí)以上的鏡像
# 示例
docker search nginx
  • service: 管理docker服務(wù)
docker service [COMMAND]
docker service ls #主要用于swarm集群
  • start: 啟動(dòng)一個(gè)或多個(gè)容器
docker start <選項(xiàng)><容器名稱,id>
# 示例
docker start centos-container
  • stats: 顯示一個(gè)容器的使用資源情況,包括cpu,內(nèi)存,硬盤等
docker stats <選項(xiàng)><容器名稱,id>
# 示例
docker stats centos-container
  • stop: 停止容器
docker stop<選項(xiàng)><容器或鏡像名稱,id>
# 示例
docker stop centos-container
  • swarm: 管理Docker Swarm集群
docker swarm [COMMAND]
# 初始化一個(gè)swarm集群
docker swarm init 
  • tag: 標(biāo)記本地鏡像,將其歸入某一倉(cāng)庫(kù)
docker tag <選項(xiàng)><鏡像名稱>:<標(biāo)簽><注冊(cè)地址,用戶名>/<鏡像名稱>:<標(biāo)簽>
#示例
docker tag nginx:latest youset:6666/nginx:0.1
  • top: 顯示容器中正在運(yùn)行的進(jìn)程信息
docker top <容器名稱,id><ps選項(xiàng)>
#示例
docker top centos-container
  • unpause: 停止容器內(nèi)的所有進(jìn)程
docker unpause <容器名稱,id>
#示例
docker unpause centos-container
  • update: 動(dòng)態(tài)地更新容器配置??梢允褂眠@個(gè)命令限制容器在docker主機(jī)上使用太多的資源
docker update <容器名稱,id>
#示例
doucker update centos-container
  • version: 展示docker版本信息
[root@localhost /home/long]# docker version
Client:
 Version:         1.12.6
 API version:     1.24
 Package version: docker-1.12.6-55.gitc4618fb.el7.centos.x86_64
 Go version:      go1.8.3
 Git commit:      c4618fb/1.12.6
 Built:           Thu Sep 21 22:33:52 2017
 OS/Arch:         linux/amd64

Server:
 Version:         1.12.6
 API version:     1.24
 Package version: docker-1.12.6-55.gitc4618fb.el7.centos.x86_64
 Go version:      go1.8.3
 Git commit:      c4618fb/1.12.6
 Built:           Thu Sep 21 22:33:52 2017
 OS/Arch:         linux/amd64

  • volume: 管理docker數(shù)據(jù)卷
docker volume [COMMAND]
# 示例
docker volume ls
  • wait: 等待容器終止,然后輸出 Exit Code
docker wait <容器名稱,id>
# 示例
docker wait centos-container

以上就是docker的主要命令,包括docker swarm集群的一些命令,除此之外還有一些其他的命令,如下:

--api-enable-cors=false 使用API時(shí),啟用CORS(cross-origin resource sharing)

-b 、--bridge="" 使用事先創(chuàng)建的網(wǎng)橋接口。若設(shè)置為none,則不在容器內(nèi)使用網(wǎng)絡(luò)

--bip="" 使用CIDR標(biāo)記法設(shè)置docker 的IP帶寬。該選項(xiàng)不能與-b選項(xiàng)同時(shí)使用

如:`-bip="192.168.0.0/24"`
-D 、--debug 啟用調(diào)試模式

-d 、--deamon=false 以守護(hù)進(jìn)程模式運(yùn)行

--dns 設(shè)置docker要使用的DNS服務(wù)器

--dns-search=[] 設(shè)置docker要使用的DNS搜索域。若設(shè)置為:example.com,則向服務(wù)器查詢hello時(shí),將首先查找hello.example.com

-e、--exec-drive="native" 設(shè)置docker運(yùn)行驅(qū)動(dòng),可設(shè)置為Native與lxc

--fixed-cidr="" 固定分配IPv4地址的帶寬。該IP地址必須在-b選項(xiàng)設(shè)置的網(wǎng)橋網(wǎng)絡(luò)或--bip設(shè)置的IP網(wǎng)段內(nèi)

-G、--group="docker" 以守護(hù)進(jìn)程模式運(yùn)行時(shí),使用-H選項(xiàng)創(chuàng)建Unix套接字后,設(shè)置該Unix套接字所在的組。使用""空字符串表示不設(shè)置分組

-g、 --graph="/var/lib/docker" 設(shè)置docker使用目錄的頂層路徑

-H、--host[] 以守護(hù)進(jìn)程模式運(yùn)行時(shí),設(shè)置套接字路徑。

--icc=true 開啟容器間通信

--insecure-registry=[] 使用私有證書搭建docker注冊(cè)服務(wù)器時(shí),設(shè)置docker注冊(cè)服務(wù)器域名

--ip=0.0.0.0 使用docker run 命令時(shí)-p選項(xiàng)將端口暴露在外時(shí),設(shè)置要綁定的默認(rèn)IP地址

--ip-forward=true 開啟net.ipv4.ip_forward

--ip-masq=true 為網(wǎng)橋上的IP地址開啟IP偽裝(masquerading)

--iptables=true 開啟iptables規(guī)則

--mtu=0 設(shè)置容器的網(wǎng)絡(luò)最大傳輸單元(MTU, Maxmum transmission unit)若不設(shè)置,則使用路由器的默認(rèn)MTU或者設(shè)置為1500

-p、--pidfile="/var/run/docker.pid" 設(shè)置PID文件路徑

-registry-mirror=[] 設(shè)置docker registry 的鏡像地址

-s、--storage-driver=[] 設(shè)置儲(chǔ)存驅(qū)動(dòng),默認(rèn)為auto,也可以設(shè)置為drivcemapper

--selinux-enabled=false開啟SELinux SELinux尚不支持BTRFS儲(chǔ)存驅(qū)動(dòng)

--storage-opt 設(shè)置存儲(chǔ)驅(qū)動(dòng)選項(xiàng)

--tls=false 使用TLS

--tlscacert="/home/exapmleuser/.docker/ca.pem" 設(shè)置要在遠(yuǎn)程證書中使用的CA證書文件的路徑

--tlscert="/home/exapmleuser/.docker/cert.pem" 設(shè)置證書文件路徑

--tlskey="/home/exapmleuser/.docker/key.pem" 設(shè)置密匙文件路徑

tlsverify="false" 使用TLS遠(yuǎn)程證書,守護(hù)進(jìn)程與客戶端全部使用證書驗(yàn)證

-v、--version=false 打印版本信息
docker一個(gè)很有意思的東西,如果你還在糾結(jié)于每次裝完軟件后,要更新軟件無(wú)法刪除所有的文件時(shí),你不妨考慮一下使用docker,他讓你可以快速部署,快速清除,快捷方便。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容