使用 Dockerfile 来制作 nginx镜像
[root@www dockerfile]# cat Dockerfile
FROM ansible/centos7-ansible
MAINTAINER Complicated
#ENV 设置环境变量
ENV PATH /usr/local/nginx/sbin:$PATH
RUN yum install gcc gcc-c++ make openssl-devel pcre-devel pcre -y &&\
useradd -s /sbin/nologin/ -M nginx
#文件放在当前目录下,拷过去会自动解压
ADD nginx-1.16.1.tar.gz /usr/src
#WORKDIR 相当于cd
WORKDIR /usr/src/nginx-1.16.1
RUN ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module &&\
make &&\
make install
#EXPOSE 映射端口
EXPOSE 80
#CMD 运行以下命令
CMD /usr/local/nginx/sbin/nginx;/bin/bash
运行Dockerfile
[root@www dockerfile]# docker build -t centos7-nginx .
[root@www dockerfile]# docker run -itd -p 88:80 centos7-nginx
f5124308622fdf08c89885c084e72592bfda81d1c0e45ecf7d5c427d2c3d0f30
[root@www dockerfile]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f5124308622f centos7-nginx "/bin/sh -c /usr/loc?? 3 seconds ago Up 2 seconds 0.0.0.0:88->80/tcp kind_villani
[root@www dockerfile]# docker exec -it f5124308622f /bin/bash
[root@f5124308622f nginx-1.16.1]# echo $PATH
/usr/local/nginx/sbin:/opt/ansible/ansible/bin:/bin:/usr/bin:/sbin:/usr/sbin
[root@f5124308622f nginx-1.16.1]# nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)