docker常用命令
容器生命周期管理
start/stop/restart
- docker start :啟動(dòng)一個(gè)或多少已經(jīng)被停止的容器
- docker stop :停止一個(gè)運(yùn)行中的容器
- docker restart :重啟容器
rm
docker rm :刪除一個(gè)或多個(gè)容器空幻。
-f :通過 SIGKILL 信號(hào)強(qiáng)制刪除一個(gè)運(yùn)行中的容器窒升。
-l :移除容器間的網(wǎng)絡(luò)連接渣玲,而非容器本身。
-
-v :刪除與容器關(guān)聯(lián)的卷。
強(qiáng)制刪除容器 db01,db02: docker rm -f db01 db02 刪除所有已經(jīng)停止的容器:docker rm $(docker ps -a -q)
exec
docker exec :在運(yùn)行的容器中執(zhí)行命令
- -d :分離模式: 在后臺(tái)運(yùn)行
-
-i :即使沒有附加也保持
STDIN
打開 - -t :分配一個(gè)偽終端
docker exec -it 9df70f9a0714 /bin/bash
docker exec -it 9df70f9a0714 sh
9df70f9a0714為容器id,可以通過docker ps -a 查看
run
docker run :創(chuàng)建一個(gè)新的容器并運(yùn)行一個(gè)命令
-a stdin: 指定標(biāo)準(zhǔn)輸入輸出內(nèi)容類型,可選 STDIN/STDOUT/STDERR 三項(xiàng);
-d: 后臺(tái)運(yùn)行容器,并返回容器ID坎匿;
-i: 以交互模式運(yùn)行容器,通常與 -t 同時(shí)使用雷激;
-t: 為容器重新分配一個(gè)偽輸入終端替蔬,通常與 -i 同時(shí)使用;
--name="nginx-lb": 為容器指定一個(gè)名稱屎暇;
-h "mars": 指定容器的hostname承桥;
-p: 指定端口映射,格式為:主機(jī)(宿主)端口:容器端口 (-P: 隨機(jī)端口映射根悼,容器內(nèi)部端口隨機(jī)映射到主機(jī)的高端口,--expose=[]: 開放一個(gè)端口或一組端口凶异; )
-m :設(shè)置容器使用內(nèi)存最大值;
-e username="ritchie": 設(shè)置環(huán)境變量,(--env-file=[]: 從指定文件讀入環(huán)境變量)
--volume , -v: 綁定一個(gè)卷
- --dns 8.8.8.8: 指定容器使用的DNS服務(wù)器挤巡,默認(rèn)和宿主一致唠帝;
- --dns-search example.com: 指定容器DNS搜索域名,默認(rèn)和宿主一致玄柏;
- --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運(yùn)行;
- --net="bridge": 指定容器的網(wǎng)絡(luò)連接類型贴铜,支持 bridge/host/none/container: 四種類型粪摘;
- --link=[]: 添加鏈接到另一個(gè)容器;
容器操作
ps
docker ps : 列出容器
- -a :顯示所有的容器绍坝,包括未運(yùn)行的徘意。
- -f :根據(jù)條件過濾顯示的內(nèi)容。
- -l :顯示最近創(chuàng)建的容器轩褐。
- -n :列出最近創(chuàng)建的n個(gè)容器椎咧。
- -q :靜默模式,只顯示容器編號(hào)把介。
- -s :顯示總的文件大小勤讽。
docker ps -a
inspect
docker inspect : 獲取容器/鏡像的元數(shù)據(jù)。
- -f :指定返回值的模板文件拗踢。
- -s :顯示總的文件大小脚牍。
- --type :為指定類型返回JSON。
docker inspect warn/warn:latest
top
docker top :查看容器中運(yùn)行的進(jìn)程信息巢墅,支持 ps 命令參數(shù)诸狭。
docker top warn(1f5fd0a20219)
1f5fd0a20219為容器id
events
docker events : 從服務(wù)器獲取實(shí)時(shí)事件
- -f :根據(jù)條件過濾事件券膀;
- --since :從指定的時(shí)間戳后顯示所有事件;
- --until :流水時(shí)間顯示到指定的時(shí)間為止;
docker events --since="1467302400"
logs
docker logs : 獲取容器的日志
- -f : 跟蹤日志輸出
- --since :顯示某個(gè)開始時(shí)間的所有日志
- -t : 顯示時(shí)間戳
- --tail :僅列出最新N條容器日志
docker logs warn
wait
docker wait : 阻塞運(yùn)行直到容器停止驯遇,然后打印出它的退出代碼芹彬。
export
docker export :將文件系統(tǒng)作為一個(gè)tar歸檔文件導(dǎo)出到STDOUT。
將id為a404c6c174a2的容器按日期保存為tar文件:
docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2
本地鏡像管理
images
docker images : 列出本地鏡像叉庐。
- -a :列出本地所有的鏡像(含中間映像層舒帮,默認(rèn)情況下,過濾掉中間映像層)眨唬;
- --digests :顯示鏡像的摘要信息会前;
- -f :顯示滿足條件的鏡像;
- --format :指定返回值的模板文件匾竿;
- --no-trunc :顯示完整的鏡像信息瓦宜;
- -q :只顯示鏡像ID.
rmi
docker rmi : 刪除本地一個(gè)或多少鏡像。
- -f :強(qiáng)制刪除岭妖;
- --no-prune :不移除該鏡像的過程鏡像临庇,默認(rèn)移除;
tag
docker tag : 標(biāo)記本地鏡像昵慌,將其歸入某一倉庫假夺。
將鏡像ubuntu:15.10標(biāo)記為 runoob/ubuntu:v3 鏡像:
docker tag ubuntu:15.10 runoob/ubuntu:v3
history
docker history : 查看指定鏡像的創(chuàng)建歷史。
- -H :以可讀的格式打印鏡像大小和日期斋攀,默認(rèn)為true已卷;
- --no-trunc :顯示完整的提交記錄;
- -q :僅列出提交記錄ID淳蔼。
查看本地鏡像runoob/ubuntu:v3的創(chuàng)建歷史:
docker history runoob/ubuntu:v3
save
docker save : 將指定鏡像保存成 tar 歸檔文件侧蘸。
runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文檔:
docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
load
docker load : 導(dǎo)入使用 docker save 命令導(dǎo)出的鏡像。
--input , -i : 指定導(dǎo)入的文件鹉梨,代替 STDIN讳癌。
--quiet , -q : 精簡(jiǎn)輸出信息。
docker load --input fedora.tar
import
docker import : 從歸檔文件中創(chuàng)建鏡像存皂。
- -c :應(yīng)用docker 指令創(chuàng)建鏡像晌坤;
- -m :提交時(shí)的說明文字;
從鏡像歸檔文件my_ubuntu_v3.tar創(chuàng)建鏡像旦袋,命名為runoob/ubuntu:v4:
docker import my_ubuntu_v3.tar runoob/ubuntu:v4
鏡像倉庫
login/logout
docker login : 登陸到一個(gè)Docker鏡像倉庫骤菠,如果未指定鏡像倉庫地址,默認(rèn)為官方倉庫 Docker Hub
docker logout : 登出一個(gè)Docker鏡像倉庫疤孕,如果未指定鏡像倉庫地址娩怎,默認(rèn)為官方倉庫 Docker Hub
- -u :登陸的用戶名
- -p :登陸的密碼
search
docker search : 從Docker Hub查找鏡像
- --automated :只列出 automated build類型的鏡像;
- --no-trunc :顯示完整的鏡像描述胰柑;
- -s :列出收藏?cái)?shù)不小于指定值的鏡像截亦。
從Docker Hub查找所有鏡像名包含java爬泥,并且收藏?cái)?shù)大于10的鏡像:
runoob@runoob:~$ docker search -s 10 java
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
java Java is a concurrent, class-based... 1037 [OK]
anapsix/alpine-java Oracle Java 8 (and 7) with GLIBC ... 115 [OK]
develar/java 46 [OK]
isuper/java-oracle This repository contains all java... 38 [OK]
lwieske/java-8 Oracle Java 8 Container - Full + ... 27 [OK]
nimmis/java-centos This is docker images of CentOS 7... 13 [OK]
NAME: 鏡像倉庫源的名稱
DESCRIPTION: 鏡像的描述
OFFICIAL: 是否 docker 官方發(fā)布
stars: 類似 Github 里面的 star,表示點(diǎn)贊崩瓤、喜歡的意思袍啡。
AUTOMATED: 自動(dòng)構(gòu)建。
pull
docker pull : 從鏡像倉庫中拉取或者更新指定鏡像
- -a :拉取所有 tagged 鏡像
- --disable-content-trust :忽略鏡像的校驗(yàn),默認(rèn)開啟
docker pull -a java
push
docker push : 將本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫
- --disable-content-trust :忽略鏡像的校驗(yàn),默認(rèn)開啟
docker push myapache:v1
容器rootfs命令
commit
docker commit :從容器創(chuàng)建一個(gè)新的鏡像却桶。
- -a :提交的鏡像作者境输;
- -c :使用Dockerfile指令來創(chuàng)建鏡像;
- -m :提交時(shí)的說明文字颖系;
- -p :在commit時(shí)嗅剖,將容器暫停。
將容器a404c6c174a2 保存為新的鏡像,并添加提交人信息和說明信息:
docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
cp
docker cp :用于容器與主機(jī)之間的數(shù)據(jù)拷貝嘁扼。
- -L :保持源目標(biāo)中的鏈接
將主機(jī)/www/runoob目錄拷貝到容器96f7f14e99ab的/www目錄下:
docker cp /www/runoob 96f7f14e99ab:/www/
將主機(jī)/www/runoob目錄拷貝到容器96f7f14e99ab中信粮,目錄重命名為www:
docker cp /www/runoob 96f7f14e99ab:/www
將容器96f7f14e99ab的/www目錄拷貝到主機(jī)的/tmp目錄中:
docker cp 96f7f14e99ab:/www /tmp/
diff
docker diff : 檢查容器里文件結(jié)構(gòu)的更改。
查看容器mymysql的文件結(jié)構(gòu)更改:
docker diff mymysql
info
docker info : 顯示 Docker 系統(tǒng)信息趁啸,包括鏡像和容器數(shù)强缘。
Client:
Debug Mode: false
Server:
Containers: 20
Running: 6
Paused: 0
Stopped: 14
Images: 40
Server Version: 19.03.5
Storage Driver: overlay
Backing Filesystem: xfs
Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: b34a5c8af56e510852c35414db4c1f4fa6172339
runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-1062.9.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 2.745GiB
Name: localhost.localdomain
ID: TBTA:DWFG:XO5R:ATVI:NKAZ:SMW6:M5V5:7XQV:Q2AM:CSSD:YYVV:3NPG
Docker Root Dir: /mnt/docker-data
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
http://hub-mirror.c.163.com/
https://registry.docker-cn.com/
https://docker.mirrors.ustc.edu.cn/
Live Restore Enabled: false
version
docker version : 顯示 Docker 版本信息。
Client: Docker Engine - Community
Version: 19.03.5
API version: 1.40
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:25:41 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.5
API version: 1.40 (minimum version 1.12)
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:24:18 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec3683