我们dockerfile指定基础镜像、以及对基础镜像更改的操作!CMD
我们一般构建镜像选择的都是系统基础镜像:centos、ubuntu 、alpine
基于centos7镜像做一个httpd:1.1镜像 简单的基本构建
--FROM 基于某个基础镜像,必须为第一个命令
--RUN 基于构建镜像执行的命令
--CMD 容器启动时执行的命令
[root@localhost ~]# cd /opt/
[root@localhost opt]# mkdir httpd
[root@localhost opt]# cd httpd
root@localhost opt]# vim dockerfile
FROM centos:7
RUN yum -y install httpd
CMD httpd -DFOREGROUND
[root@localhost httpd]# docker build -t htppd:1.2 ./
[root@localhost httpd]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd 1.2 710b0c1987b9 15 minutes ago 360MB
12.2.1 latest 4f380adfc10f 11 days ago 133MB
nginx latest 4f380adfc10f 11 days ago 133MB
mysql 5.7 09361feeb475 11 days ago 447MB
centos 7 8652b9f0cb4c 7 months ago 204MB
基于centos7镜像做一个nginx镜像 基本·构建
ADD 指令和 COPY 的格式和性质基本一致,但是在 COPY 基础上增加了一些功能 ADD 指令将会自动解压缩这个压缩文件到 <目标路径> 去
[root@localhost opt]# mkdir nginx
[root@localhost nginx]# vim dockerfile
FROM centos:7
ADD nginx-1.12.2.tar.gz /opt/nginx
RUN yum install gcc gcc-c++ make zlib-devel pcre-devel -y \
&& cd /opt/nginx/nginx-1.12.2 \
&& ./configure --prefix=/usr/local/nginx \
&& make \
&& make install
CMD ["/usr/local/nginx/","-g","daemon off;"]
[root@localhost nginx]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 12.1 e674bdbb1082 2 minutes ago 446MB
httpd 1.2 710b0c1987b9 43 minutes ago 360MB
FROM 指定基础镜像
RUN 镜像内部要执行的命令
COPY 复制文件到镜像中
ADD 复制、加压(tar)、下载文件到镜像中
WORKDIR 指定当前目录
USER 指定当前用户
VOLUME 配置挂载点
EXPOSE 配置默认暴露端口
ENV 配置环境变量
CMD 配置容器启动时要执行的命令,在docker run时可以被覆盖
ENTRYPOINT 配置容器启动时要执行的命令,在docker run时不可以被覆盖
HEALTHCHECK 对容器内部做健康检查
COPY 复制文件到镜像中
copy 将本地文件复制到镜像中
扫描二维码关注公众号,回复: 13465615 查看本文章USER 指定当前用户 这个用户必须是事先建立好的,否则无法切换
FROM centos:7
ADD nginx-1.12.2.tar.gz /opt/nginx
RUN yum install gcc gcc-c++ make zlib-devel pcre-devel -y \
&& cd /opt/nginx/nginx-1.12.2 \
&& ./configure --prefix=/usr/local/nginx \
&& make \
&& make install
USER JACK
COPY/opt/nginx/ index.html /usr/local/nginx/html/index.html
CMD ["/usr/local/nginx/","-g","daemon off;"]