docker常用命令
一、docker 命令介紹
1、幫助命令
docker --help
管理命令:
container 管理容器
image 管理鏡像
network 管理網(wǎng)絡(luò)
命令:
attach 介入到一個(gè)正在運(yùn)行的容器
build 根據(jù) Dockerfile 構(gòu)建一個(gè)鏡像
commit 根據(jù)容器的更改創(chuàng)建一個(gè)新的鏡像
cp 在本地文件系統(tǒng)與容器中復(fù)制 文件/文件夾
create 創(chuàng)建一個(gè)新容器
exec 在容器中執(zhí)行一條命令
images 列出鏡像
kill 殺死一個(gè)或多個(gè)正在運(yùn)行的容器
logs 取得容器的日志
pause 暫停一個(gè)或多個(gè)容器的所有進(jìn)程
ps 列出所有容器
pull 拉取一個(gè)鏡像或倉(cāng)庫(kù)到 registry
push 推送一個(gè)鏡像或倉(cāng)庫(kù)到 registry
rename 重命名一個(gè)容器
restart 重新啟動(dòng)一個(gè)或多個(gè)容器
rm 刪除一個(gè)或多個(gè)容器
rmi 刪除一個(gè)或多個(gè)鏡像
run 在一個(gè)新的容器中執(zhí)行一條命令
search 在 Docker Hub 中搜索鏡像
start 啟動(dòng)一個(gè)或多個(gè)已經(jīng)停止運(yùn)行的容器
stats 顯示一個(gè)容器的實(shí)時(shí)資源占用
stop 停止一個(gè)或多個(gè)正在運(yùn)行的容器
tag 為鏡像創(chuàng)建一個(gè)新的標(biāo)簽
top 顯示一個(gè)容器內(nèi)的所有進(jìn)程
unpause 恢復(fù)一個(gè)或多個(gè)容器內(nèi)所有被暫停的進(jìn)程
二、鏡像相關(guān)
1、拉取鏡像
docker pull
2、查看鏡像
docker images
3、刪除鏡像
docker rmi
常用參數(shù):
1. -f:強(qiáng)制刪除運(yùn)行中的容器
4、創(chuàng)建鏡像
(1)對(duì)源鏡像更改后重新建立新鏡像
docker commit
常用參數(shù):
1. -m:本次提交信息
2. --author="" :作者
(2)使用Dockerfile文件來(lái)構(gòu)建鏡像
docker build
常用參數(shù):
1. -t x/y:z:指定鏡像的命名空間為x倉(cāng)庫(kù)為y,tag為z
三、容器相關(guān)
1、運(yùn)行容器
docker run
常用參數(shù):
--name:為容器指定名稱(chēng)
-it:啟動(dòng)一個(gè)交互型容器,此參數(shù)為我們和容器提供了一個(gè)交互shell
-d:創(chuàng)建后臺(tái)型容器
-restart=always:容器退出后自動(dòng)重啟
-restart=on-failure:x:容器退出時(shí)如果返回值是非0,就會(huì)嘗試重啟x次
-p x:y :主機(jī)端口:容器端口
-P:隨機(jī)分配一個(gè)49000到49900的端口
-v:創(chuàng)建數(shù)據(jù)卷
-n :指定dns
-h : 指定容器的hostname
-e :設(shè)置環(huán)境變量
-m :設(shè)置容器使用內(nèi)存最大值
--net: 指定容器的網(wǎng)絡(luò)連接類(lèi)型,支持 bridge/host/none/container
--link=x: 添加鏈接到另一個(gè)容器x
--expose=x: 開(kāi)放端口x
這里docker create和docker run -it創(chuàng)建的容器都是交互型容器
2、查看正在運(yùn)行的容器
docker ps
常用參數(shù):
1. -a:查看所有容器
2. -l:只列出最近創(chuàng)建的
3. -n=x:只列出最后創(chuàng)建的x個(gè)
4. -q:只列出容器id
3、停止容器
docker stop //方式較溫柔,慢慢的停止容器的運(yùn)行
docker kill //方式簡(jiǎn)單粗暴,立即停止容器運(yùn)行
4、刪除容器
docker rm
常用參數(shù):
1. -f:強(qiáng)制刪除運(yùn)行中的容器
2. docker rm `docker ps -aq`:刪除所有容器
5、查看容器日志
docker logs
常用參數(shù):
1. -f:實(shí)時(shí)查看日志
2. --tail=x:查看最后x行
3. -t:查看日志產(chǎn)生的時(shí)間
6、查看容器進(jìn)程
docker top
7、查看容器配置信息
docker inspect
常用參數(shù):
1. -f='{{x}}':查看x配置
8、進(jìn)入容器
(1)進(jìn)入交互型容器
docker attch
常用參數(shù):
1. -f:強(qiáng)制刪除運(yùn)行中的容器
2. docker rm `docker ps -aq`:刪除所有容器
(2)進(jìn)入后臺(tái)型容器
docker exec
常用參數(shù):
1. -it 容器id /bin/bash:進(jìn)入到后臺(tái)容器
四、Dockerfile
FROM
FROM指定一個(gè)基礎(chǔ)鏡像, 一般情況下一個(gè)可用的 Dockerfile一定是 FROM 為第一個(gè)指令。至于image則可以是任何合理存在的image鏡像。 FROM 一定是首個(gè)非注釋指令 Dockerfile. FROM 可以在一個(gè) Dockerfile 中出現(xiàn)多次,以便于創(chuàng)建混合的images。 如果沒(méi)有指定 tag ,latest 將會(huì)被指定為要使用的基礎(chǔ)鏡像版本。
MAINTAINER
這里是用于指定鏡像制作者的信息 RUN RUN命令將在當(dāng)前image中執(zhí)行任意合法命令并提交執(zhí)行結(jié)果。命令執(zhí)行提交后,就會(huì)自動(dòng)執(zhí)行Dockerfile中的下一個(gè)指令。 層級(jí) RUN 指令和生成提交是符合Docker核心理念的做法。它允許像版本控制那樣,在任意一個(gè)點(diǎn),對(duì)image 鏡像進(jìn)行定制化構(gòu)建。 RUN 指令緩存不會(huì)在下個(gè)命令執(zhí)行時(shí)自動(dòng)失效。比如 RUN apt-get dist-upgrade -y 的緩存就可能被用于下一個(gè)指令. --no-cache 標(biāo)志可以被用于強(qiáng)制取消緩存使用。
ENV
ENV指令可以用于為docker容器設(shè)置環(huán)境變量 ENV設(shè)置的環(huán)境變量,可以使用 docker inspect命令來(lái)查看。同時(shí)還可以使用docker run --env
USER USER
用來(lái)切換運(yùn)行屬主身份的。Docker 默認(rèn)是使用 root,但若不需要,建議切換使用者身分,畢竟 root 權(quán)限太大了,使用上有安全的風(fēng)險(xiǎn)。
WORKDIR
WORKDIR 用來(lái)切換工作目錄的。Docker 默認(rèn)的工作目錄是/,只有 RUN 能執(zhí)行 cd 命令切換目錄,而且還只作用在當(dāng)下下的 RUN,也就是說(shuō)每一個(gè) RUN 都是獨(dú)立進(jìn)行的。如果想讓其他指令在指定的目錄下執(zhí)行,就得靠 WORKDIR。WORKDIR 動(dòng)作的目錄改變是持久的,不用每個(gè)指令前都使用一次 WORKDIR。
COPY
COPY 將文件從路徑
ADD
ADD 將文件從路徑
VOLUME
創(chuàng)建一個(gè)可以從本地主機(jī)或其他容器掛載的掛載點(diǎn),一般用來(lái)存放數(shù)據(jù)庫(kù)和需要保持的數(shù)據(jù)等。
EXPOSE
EXPOSE 指令指定在docker允許時(shí)指定的端口進(jìn)行轉(zhuǎn)發(fā)。
CMD
Dockerfile.中只能有一個(gè)CMD指令。 如果你指定了多個(gè),那么最后個(gè)CMD指令是生效的。 CMD指令的主要作用是提供默認(rèn)的執(zhí)行容器。這些默認(rèn)值可以包括可執(zhí)行文件,也可以省略可執(zhí)行文件。 當(dāng)你使用shell或exec格式時(shí), CMD 會(huì)自動(dòng)執(zhí)行這個(gè)命令。
ONBUILD
ONBUILD 的作用就是讓指令延遲執(zhí)行,延遲到下一個(gè)使用 FROM 的 Dockerfile 在建立 image 時(shí)執(zhí)行,只限延遲一次。 ONBUILD 的使用情景是在建立鏡像時(shí)取得最新的源碼 (搭配 RUN) 與限定系統(tǒng)框架。
ARG
ARG是Docker1.9 版本才新加入的指令。 ARG 定義的變量只在建立 image 時(shí)有效,建立完成后變量就失效消失 LABEL 定義一個(gè) image 標(biāo)簽 Owner,并賦值,其值為變量 Name 的值。(LABEL Owner=$Name )
ENTRYPOINT
ENTRYPOINT是指定 Docker image 運(yùn)行成 instance (也就是 Docker container) 時(shí),要執(zhí)行的命令或者文件。

浙公網(wǎng)安備 33010602011771號(hào)