提交运行的容器成为镜像
生产环境一般使用 dockerfile. commit 的镜像不可控1
2
3
4
5
6
7
8docker run --name imwltest -h docker -dit -e TZ=Asia/Shanghai debian
# docker commit -a='作者' -m='备注' 运行时容器ID 新镜像名称
docker commit -a='imwl' -m='Test' imwltest imwl/test # 默认TAG: latest
docker commit -a='imwl' -m='Test' imwltest imwl/test:0.14
docker export imwltest > imwltest.tar # 导出容器
docker import imwltest.tar imwltest:test # 导入容器
1 | # docker images |
Docker Hub 账户 imwl1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16docker login
docker push imwl/test:0.14
docker push imwl/test
docker tag flasky:latest imwl/flask:latest
docker push imwl/flask:latest
docker run --name flasky -d -p 8000:5000 imwl/flask:latest # -d 后台运行容器,并返回容器ID -p 端口映射(8000宿主机,5000容器端口)
# -P 随机端口映射
# -e TZ=Asia/Shanghai 指定时区
备份与还原
有些机密性,可以通过docker镜像备份和迁移实现1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28# docker save -o 备份镜像的名称 源镜像名称:tag版本
docker save -o imwltest.tar imwl/test:0.14
# 当前目录下 会有 imwltest.tar文件
# docker images
REPOSITORY TAG IMAGE ID CREATED
imwl/test 0.14 69c1c6c58124 27 minutes ago
imwl/test latest ad65438d599f 32 minutes ago
# docker rmi imwl/test:0.14
Untagged: imwl/test:0.14
Untagged: imwl/test@sha256:97b496724012eee3df3421edb2ab6edcd6115e42b8060c24ba06b51da466e0dd
Deleted: sha256:69c1c6c58124c56456a22c92a2e2125c9abc744f6acde379f5039779becbcc29
# docker images
REPOSITORY TAG IMAGE ID CREATED
imwl/test latest ad65438d599f 32 minutes ago
## 恢复
# docker load -i imwltest.tar
Loaded image: imwl/test:0.14
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
imwl/test 0.14 69c1c6c58124 32 minutes ago 114MB
imwl/test latest ad65438d599f 37 minutes ago 114MB
debian latest a8797652cfd9 2 weeks ago 114MB
私有仓库
Docker私有仓库内部用来存放镜像的仓库,具有更高的保密安全级别
搭建
1 | # docker pull registry # 拉取私有仓库镜像 |
测试
标记镜像为私有仓库的镜像docker tag imwl/test 207.246.103.127:5000/debiantest
上传镜像到私有仓库docker push 207.246.103.127:5000/debiantest