简介
构建镜像可以让我们保存对容器的修改,并再次使用.提供了自定义镜像的能力,以软件的形式打包并方法服务及其运行环境.
docker里面提供了两种方式来构建镜像:
- 方式一:docker commit 通过容器构建
- 方式二:docker build 通过Dockerfile文件构建.
使用commit构建镜像:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
- -a, --author=”” 指定镜像的作者.
- -m, --message=”” 提交信息,构建信息
- -p, --pause=true 默认情况在commit的时候会暂停容器,使用这个参数可以在构建的时候不暂停容器.
步骤:
- 1.创建一个容器并安装nginx服务
docker run -it --name commit_test -p 80 centos /bin/bash
- 2.在容器内部安装nginx,和之前步骤一样
- 3.提交镜像.
docker commit -a 'lanxw0720' -m 'nginx' commit_test lanxw0720/commit_test1
- 4.通过docker images命令可以看到我们刚构建的镜像.
- 5.接下来我们就可以使用自己定义的镜像来启动容器.
docker run -d --name nginx_web1 -p 80 lanxw0720/commit_test1 /usr/sbin/nginx -g "daemon off;"
使用Docker file构建镜像:
什么是Dockerfile文件呢?
其实就是包含了一些执行命令的文本文件.
docker build [OPTIONS] PATH|URL|-
--force-rm=false
--no-cache=false
--pull=false
-q, --quiet=false
-rm=true
-t, --tag=””
步骤
- 1.在宿主机中,我们创建存放Dockerfile文件的目录和Dockerfile文件.
mkdir -p dockerfile/df_test1
cd dockerfile/df_test1/
vi Dockerfile
- 2.编写Dockfile文件
# First docker file for test
FROM centos
MAINTAINER lanxw0720 "lanxiongwei@wolfcode.cn"
RUN yum install -y wget
RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
RUN yum install -y epel-release
RUN yum install -y nginx
EXPOSE 80
- 3.使用build命令构建镜像.
docker build -t='lanxw0720/df_test1' .
- 4.通过我们构建好的镜像来创建容器.
docker run -d --name nginx_web3 -p 80 lanxw0720/df_test1 /usr/sbin/nginx -g "daemon off;"