做个简单的NGINX镜像

Dockerfile 内容如下:

FROM centos

RUN yum install -y ncurses \
    ncurses-devel \
    perl \
    cmake \
    bison \
    openssl-devel \
    zlib-devel \
    file \
    curl \
    zlib \
    openssl \
    openssl-devel \
    pcre \
    pcre-devel \
    libxml2 \
    libxml2-dev \
    libxslt \
    libxslt-devel \
    openssh-clients \
    openssh-devel \
    make \
    gcc \
    gcc-c++ \
    autoconf

RUN groupadd www && useradd -g www -s /sbin/nologin www
RUN mkdir -p /data/logs && chown www:www /data/logs ; \
    mkdir -p /data/web/webclose  && chown www:www /data/web  && chmod 700 /data/web/webclose ; \
    mkdir -p /data/conf/nginx ;\
    mkdir -p /usr/local/nginx ;\
    mkdir -p /dist/{dist,src}

ADD ["nginx.tar.gz","/data/conf/"]
ADD ["nginx-1.13.11.tar.gz","/dist/src/"]

RUN cd /dist/src/nginx-1.13.11 && ./configure --user=www --group=www \
        --prefix=/usr/local/nginx \
        --with-http_stub_status_module \
        --with-http_ssl_module \
        --with-http_secure_link_module && make && make install ;\
        [ -d "/usr/local/nginx/conf" ] && rm -rf /usr/local/nginx/conf && ln -sv /data/conf/nginx /usr/local/nginx/conf

CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;","-c","/data/conf/nginx/nginx.conf"]

当前目录需要的文件:

[root@docker-machine_192.168.31.129 docker]# ll
total 1008
-rw-r--r-- 1 root root    1453 Jul 18 09:59 Dockerfile
-rw-r--r-- 1 root root 1016189 Apr  4 18:01 nginx-1.13.11.tar.gz
-rw-rw-r-- 1 root root    7134 Jul 18 09:23 nginx.tar.gz

nginx.tar.gz 是自己定制好的nginx.conf、vhost等配置文件

制作镜像:

[root@docker-machine_192.168.31.129 docker]# docker  build -t my_centos_with_nginx:v1 . 

启动容器:

[root@docker-machine_192.168.31.129 docker]# docker  run -i -t -d -p 80:80 my_centos_with_nginx:v1
085298fc89927068212755e94b9f5cb2f6e1553bef6edb8f105fa71a2d15e31f

查看:

[root@docker-machine_192.168.31.129 docker]# docker  ps -a
CONTAINER ID        IMAGE                     COMMAND                CREATED             STATUS              PORTS                NAMES
085298fc8992        my_centos_with_nginx:v1   "/usr/local/nginx/sb   48 seconds ago      Up 47 seconds       0.0.0.0:80->80/tcp   sick_wilson         
[root@docker-machine_192.168.31.129 docker]# netstat  -tlnp | grep -v sshd
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name         
tcp        0      0 :::80                       :::*                        LISTEN      13197/docker-proxy     

容器已经启动了,并映射到本地的80端口
可以用docker exec 进容器看看:

[root@docker-machine_192.168.31.129 docker]# docker exec -it 085298fc8992 /bin/bsh 
[root@085298fc8992 /]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  45932  3300 ?        Ss+  03:12   0:00 nginx: master process /usr/local/nginx/sbin/nginx -g daemon off; -c /data/conf/nginx/nginx.c
www          6  0.0  0.0  46068  1628 ?        S+   03:12   0:00 nginx: worker process
www          7  0.0  0.0  46068  1628 ?        S+   03:12   0:00 nginx: worker process
www          8  0.0  0.0  46068  1872 ?        S+   03:12   0:00 nginx: worker process
www          9  0.0  0.0  46068  1628 ?        S+   03:12   0:00 nginx: worker process
www         10  0.0  0.0  46068  1628 ?        S+   03:12   0:00 nginx: worker process
www         11  0.0  0.0  46068  1628 ?        S+   03:12   0:00 nginx: worker process
www         12  0.0  0.0  46068  1628 ?        S+   03:12   0:00 nginx: worker process
www         13  0.0  0.0  46068  1628 ?        S+   03:12   0:00 nginx: worker process
www         14  0.0  0.0  46068  1628 ?        S+   03:12   0:00 nginx: worker process
www         15  0.0  0.0  46068  1628 ?        S+   03:12   0:00 nginx: worker process

猜你喜欢

转载自www.cnblogs.com/wshenjin/p/9328763.html