Docker镜像创建
1、相关命令
1、使用pull命令下载镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
2、查看本地Docker镜像的信息
docker images [OPTIONS] [REPOSITORY[:TAG]]
3、运行Docker镜像
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
4、创建镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-a :提交的镜像作者。
-c :使用Dockerfile指令来创建镜像。
-m :提交时的说明文字。
-p :在commit时,将容器暂停。
2、创建步骤
1、下载镜像
2、运行容器。
docker run -it 镜像
3、修改容器。
例如安装vim
yum install -y vim
4、将容器保存为新的镜像。(打开一个新的XShell窗口)
docker ps 查看当前运行的镜像name
docker commit [name] [要命名的名字]
base镜像和空镜像
镜像和容器的区别
base的两层含义:
- 不依赖其他镜像, 从scratch构建。(从0开始构建)
- 其他镜像可以以之为基础进行扩展。
例如:各种Linux发行版的Docker镜像。如: Ubuntu、Debian、CentOS等。
因为对于base镜像, 底层直接用主机系统的kernel(内核), 自己只需要提供rootfs
(用户空间的文件系统)就可以了。rootfs可以很小, 只需要包括最基本的命令、工具和程序库。
容器只能使用主机系统的内核,而且不能修改。
镜像是由许多层的文件系统叠加构成,最下面是一个引导文件系统bootfs,第二层是一个用户空间的文件系统rootfs,rootfs通常是某种操作系统,比如Centos、Ubuntu,在root文件系统之上又有很多层文件系统,这些文件系统叠加在一起,最终构成docker的镜像。