- 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 打印版本信息