1贰您、進入到運行的docker容器中
docker exec -it containerID(容器id) /bin/bash
# -i: 交互式操作
# -t: 終端
# /bin/bash: 放在容器后的是命令刁赖,這里我們希望有個交互式的shell,因此用的是'/bin/bash'
要退出終端使用
exit
2逛钻、根據(jù)Dockerfile創(chuàng)建鏡像
docker build -t nginx:newContainer .
## -t 是給鏡像命名
## . 是基于當(dāng)前目錄的Dockerfile來構(gòu)建鏡像
3、查找docker.hub上的鏡像
docker search imageID
4雨女、拉取鏡像
docker pull imageID
5、上傳鏡像到docker.hub
# 登錄
docker login
# 輸入用戶密碼即可
# 重新設(shè)置tag
docker tag oldImage username/oldImage
# 上傳鏡像
docker push username/oldImage
6阳准、創(chuàng)建并啟動容器
docker run -it -p 9000:80 --name newContainerName imageName /bin/bash
# -i: 交互式操作
# -t: 終端
# -p: 指定端口映射(-P隨機映射到主機的高端口)
# --name: 給容器命名
# /bin/bash: 放在容器后的是命令氛堕,這里我們希望有個交互式的shell,因此用的是'/bin/bash'
1、可以使用
exit
退出交互
2野蝇、其中-it
可以替換成-d
,-d
:表示后臺運行
7讼稚、容器操作命令
# 1、啟動停止的容器
docker start containerID
# 2绕沈、停止運行的容器
docker stop containerID
# 3锐想、查看容器
docker ps -a : 查看所有的容器(包含停止的容器)
docker ps : 只查看正在運行的容器
# 4、重啟容器
docker restart containerID
# 5乍狐、刪除容器
docker rm (-f) containerID
# 6赠摇、刪除所有容器
docker rm -f $(docker ps -a -q)
# 7、強制刪除容器
docker kill containerID
8、鏡像命令
# 1藕帜、查看鏡像
docker images
# 2烫罩、刪除鏡像
docker rmi imageName
# 3、刪除所有鏡像
docker rmi -f $(docker images)
9洽故、導(dǎo)出容器
docker export -o nginx-demo.tar nginx-demo
或
docker export > nginx-demo.tar nginx-demo
# `-o`或`>` : 表示輸出到文件
# `nginx-demo.tar` : 目標(biāo)文件
# `nginx-demo` : 源容器名(使用容器id也可以)
10贝攒、導(dǎo)入容器
docker import nginx-test.tar nginx:imp
或
cat nginx-test.tar | docker import - nginx:imp
或
docker import http://example.com/demo.tar/repository
# `nginx-test.tar` :導(dǎo)入的源容器包
# `nginx:imp` : 導(dǎo)入后生成的容器名
11、導(dǎo)出鏡像
docker save -o nginx.tar nginx:latest
或
docker save > nginx.tar nginx:latest
# `-o`和`>` : 表示輸出到文
# `nginx.tar` : 為目標(biāo)文件
# `nginx:latest` : 是源鏡像名(name:tag)
12时甚、導(dǎo)入鏡像
docker load -i nginx.tar
或
docker load < nginx.tar
# `-i`和`<` : 表示從文件輸入隘弊。會成功導(dǎo)入鏡像及相關(guān)元數(shù)據(jù),包括tag信息
13荒适、export 和 save區(qū)別
- export命令是從容器(container)中導(dǎo)出tar文件长捧,而save命令則是從鏡像(images)中導(dǎo)出
- 基于第二點,export導(dǎo)出的文件再import回去時吻贿,無法保留鏡像所有歷史(即每一層layer信息串结,不熟悉的可以去看Dockerfile),不能進行回滾操作舅列;而save是依據(jù)鏡像來的肌割,所以導(dǎo)入時可以完整保留下每一層layer信息。如下圖所示帐要,nginx:latest是save導(dǎo)出load導(dǎo)入的把敞,nginx:imp是export導(dǎo)出import導(dǎo)入的。