前言
优点:
- 保存对容器的修改,并再次使用
- 自定义镜像
- 以软件形式打包并分发服务及其运行环境
命令总结:
通过容器构建
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
通过 Dockerfile 文件构建
docker build
通过容器构建
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a
:默认 --author="" ,用来指定镜像的作者,通常填写作者名和联系方式。-m
:用来记录镜像构建的信息,-p
:由于容器构建时,会暂停运行中的容器,该参数可以不暂停正在运行的容器。
示例
# 通过容器构建镜像
$ docker commit -a "yogile" -m "commit test" commit_t yogile/commit_t
sha256:8429b31f250ee3e6ac4f9cef2e209e5e5b0f186bfbe0eb70359886560ccd6e7e
# 查看镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yogile/commit_t latest 8429b31f250e 23 seconds ago 209MB
这时,我们就构建了一个镜像,可以根据这个镜像运行容器了。
使用 Dockerfile 文件构建
这种方法实际上是编写类似于脚本的文件并执行它,再根据命令一步步形成一个想要得到的容器。
创建 Dockerfile 文件
创建存放 Dockerfile 目录
mkdir -p dockerfile/df_test1
创建 Dockerfile 文件
vim dockerfile/df_test1/Dockerfile
这里 Dockerfile 文件的命名必须为 Dockerfile ,否则报错:
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/debiana/dockerfile/df_test1/Dockerfile: no such file or directory
示例
# Dockerfile
# 选择镜像的所需 Repository 仓库
FROM ubuntu:18.04
# 填写维护人员信息
MAINTAINER "Yogile" "[email protected]"
# 执行 apt-get update 命令
RUN apt-get update
# 执行下载安装 nginx 命令
RUN apt-get install nginx -y
# 绑定端口 80
EXPOSE 80
使用 docker build
构建镜像
docker build [OPTIONS] PATH | URL | -
-t
:--tag="" ,指定构建的镜像名字PATH
:指定 Dockerfile 文件的路径
示例
docker build -t ubuntu_yyy dockerfile/df_test1