目录
  1. 1. 编写Dockerfile
  2. 2. 构建镜像
  3. 3. 查看镜像
  4. 4. 启动容器
Dockerfile构建Nginx镜像

编写Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@aliyun docker_nginx]# ll		# 
total 8
-rw-r--r-- 1 root root 434 Nov 4 12:12 dockerfile
-rw-r--r-- 1 root root 40 Nov 4 12:01 run.sh
[root@aliyun docker_nginx]#

# dockerfile内容
FROM centos:7.6.1810
MAINTAINER MoWenJie
RUN yum install -y wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel # 安装编译软件及依赖
RUN wget http://nginx.org/download/nginx-1.9.7.tar.gz # 下载nginx软件包
RUN tar zxvf nginx-1.9.7.tar.gz # 解压
WORKDIR nginx-1.9.7 # 切换到解压后的目录
RUN ./configure --prefix=/usr/local/nginx && make && make install # 编译安装
EXPOSE 80 # 暴露端口
EXPOSE 443
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf # 关闭守护进程
ADD run.sh /run.sh # 将宿主机中的run.sh添加到容器中
RUN chmod 755 /run.sh
CMD ["/run.sh"] # 启动容器是执行nginx启动脚本

# run.sh内容
[root@aliyun docker_nginx]# cat run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx
[root@aliyun docker_nginx]#

构建镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@aliyun docker_nginx]# ll
total 8
-rw-r--r-- 1 root root 434 Nov 4 12:12 dockerfile
-rw-r--r-- 1 root root 40 Nov 4 12:01 run.sh
[root@aliyun docker_nginx]# docker build -t nginx:1.0 .
Sending build context to Docker daemon 3.072 kB
Step 1/13 : FROM centos:7.6.1810
---> f1cb7c7d58b7
Step 2/13 : MAINTAINER MoWenJie
---> Using cache
---> 652a92e8f2fa
Step 3/13 : RUN yum install -y wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel
---> Using cache
---> f7318ed50bf0
Step 4/13 : RUN wget http://nginx.org/download/nginx-1.9.7.tar.gz
---> Using cache
---> cfafb98ee34f
Step 5/13 : RUN tar zxvf nginx-1.9.7.tar.gz
---> Using cache
---> cf9f86fc026b
................. # 由于是编译安装,过程省略
Removing intermediate container d43b139b3f6e
Step 11/13 : ADD run.sh /run.sh
---> 60a4d6081363
Removing intermediate container 66d586d53972
Step 12/13 : RUN chmod 755 /run.sh
---> Running in 0ab9149e5f6d
---> 38e6a6de2c24
Removing intermediate container 0ab9149e5f6d
Step 13/13 : CMD /run.sh
---> Running in 86b91abacb70
---> d096eb0ab43c
Removing intermediate container 86b91abacb70
Successfully built d096eb0ab43c
[root@aliyun docker_nginx]#

查看镜像

1
2
3
4
5
6
7
[root@aliyun docker_nginx]# docker image ls 
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.0 d096eb0ab43c About a minute ago 385 MB
repostory/tomcat_jdk 2.0 0e41970d2da1 5 days ago 623 MB
repostory/tomcat_jdk latest 0e41970d2da1 5 days ago 623 MB
centos 7.6.1810 f1cb7c7d58b7 7 months ago 202 MB
[root@aliyun docker_nginx]#

启动容器

1
2
3
4
5
6
[root@aliyun docker_nginx]# docker run -d -p 80:80 -p 443:443 --name nginx nginx:1.0 
3d78648875a29539fee1b983e6f59d3d0e06891cbaa855668473c7831c53b917
[root@aliyun docker_nginx]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3d78648875a2 nginx:1.0 "/run.sh" 7 seconds ago Up 6 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp nginx
[root@aliyun docker_nginx]#

文章作者: GZ
文章链接: https://gz1903.github.io/2019/11/15/Dockerfile构建Nginx镜像/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GZ's Blog
打赏
  • 微信
  • 支付宝

评论