镜像构建
镜像构建
构建镜像,主要有两种方法:
- 制作快照方式:在基础镜像上(比如Ubuntu),先拉起镜像并进入容器,在容器中执行安装任务,然后整体制作快照;
- Dockerfile方式:将软件安装的流程写成Dockerfile,使用docker build构建成容器镜像。
1. 制作快照方式构建镜像
在本地主机或云服务器上,安装Docker;
准备一个基础镜像,拉起镜像后生成容器,进入该容器。例如:启动一个CentOS的容器;
docker run -it centos
执行用户任意自定义操作,例如执行安装任务;
yum install XXX
或者
git clone https://github.com/XXX/XXX.git
输入exit退出容器;
制作快照;
docker commit -m "xxx" [-a "xxx"] CONTAINER-ID [REPOSITORY/]IMAGE[:TAG]
[ ] 内为可选参数
- -m:提交时的说明文字;
- -a:提交的镜像作者;
- CONTAINER-ID:容器ID,执行docker ps -a可以查询容器ID;
- [REPOSITORY/]IMAGE[:TAG]:仓库名/镜像名:TAG名;
执行docker images可以查看制作完成的镜像。
2. 使用Dockerfile方式构建镜像
Dockerfile示例:
#Version 1.0.1
FROM centos:latest
#设置root用户为后续命令的执行者
USER root
#执行操作
RUN yum update -y
RUN yum install -y java
#使用&&拼接命令
RUN touch test.txt && echo "abc" >>abc.txt
#对外暴露端口
EXPOSE 80 8080 1038
#添加网络文件
ADD https://www.baidu.com/img/bd_logo1.png /opt/
#设置环境变量
ENV WEBAPP_PORT=9090
#设置工作目录
WORKDIR /opt/
#设置启动命令
ENTRYPOINT ["ls"]
#设置启动参数
CMD ["-a", "-l"]
#设置卷
VOLUME ["/data", "/var/www"]
#设置子镜像的触发操作
ONBUILD ADD . /app/src
ONBUILD RUN echo "on build excuted" >> onbuild.txt
在本地主机或云服务器上,安装Docker;
参考Dockerfile示例,准备Dockerfile文件;
执行命令 docker build [-t REPOSITORY/IMAGE:TAG] .(“.”表示Dockerfile文件在当前目录下,请根据Dockerfile文件实际所在路径进行修改),自动完成镜像制作。
更多详情请参见 Dockerfile官方文档 。