1 Docker镜像的创建
创建镜像有三种方法:
- 基于已有镜像创建
- 基于本地模板创建
- 基于Dockerfile创建(重点)
1.1 基于现有镜像创建模板
(1) 首先启动一个镜像,在容器里做修改
docker create -it centos:7 bash
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb555aed6d9c centos:7 "bash" 17 seconds ago Created agitated_germain
docker start fb555aed6d9c
yum install net-tools -y
exit
[root@localhost ~]# docker create -it centos:7 bash
a0e0b9ee23f6c61f62a33bd909b65adbb0414cec3d73c6e96729eb3e1e4dd49e
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a0e0b9ee23f6 centos:7 "bash" 6 seconds ago Created modest_jepsen
#启动容器
[root@localhost ~]# docker start modest_jepsen
# 可以在容器里面安装net-tools工具
[root@localhost ~]# docker exec -it modest_jepsen bash
[root@a0e0b9ee23f6 /]# yum install -y net-tools
(2) 然后将修改后的容器提交为新的镜像,需要使用该容器的ID号创建新镜像
root@localhost ~]# docker commit -m "new net-tools" -a "stevelu" a0e0b9ee23f6 centos:test1
sha256:40319e6b8822918affaacb40392d9eb30b8603b56d66c030c1a3ee9da5711d36
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos test1 40319e6b8822 40 seconds ago 375MB
centos 7 eeb6ee3f44bd 9 months ago 204MB
常用选项
选项 | 说明 |
---|---|
-m | 说明信息 |
-a | 作者信息 |
-p | 生成过程中停止容器的运行 |
1.2 基于本地模板创建
通过导入操作系统模板文件可以生成镜像,模板可以从OPENVZ开源项目下载,下载地址为:
https://wiki.openvz.org/Download/template/precrated
wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz
可在主机上复制下载地址下载debian镜像导入,虚拟机上下载较慢
#导入debian压缩包
[root@localhost ~]# ls
anaconda-ks.cfg debian-7.0-x86-minimal.tar.gz initial-setup-ks.cfg original-ks.cfg
#生成镜像
[root@localhost ~]# docker import debian-7.0-x86-minimal.tar.gz -- debian:v1
sha256:0cc18c818a1948becb66cab4b4c880f815200e67fffcbb9bd48f67822010247b
#或
cat debian-7.0-x86-minimal.tar.gz | docker import - debian:v1
#查看镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
debian v1 0cc18c818a19 16 seconds ago