案例:编写Dockerfile在宿主机上构建Nginx镜像
目录
(1)基础镜像采用centos:7,即在宿主机上首先拉取centos:7镜像
(3)创建并编写 dockerfile01 文件(根据具体的Nginx安装过程编写)
(7)容器成功运行后,在宿主机上打开浏览器,输入正确的URL查看结果
任务:
(1)基础镜像采用centos:7,即在宿主机上首先拉取centos:7镜像
[root@docker-server ]# docker pull centos # 拉取centos:7
(2)创建一个docker文件夹
[root@docker-server ]# mkdir docerk # 创建文件夹
(3)创建并编写 dockerfile01 文件(根据具体的Nginx安装过程编写)
编写 dockerfile01 内容如下:
FROM centos:7 # 设置基础镜像来源
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 -xzf nginx-1.9.7.tar.gz # 解压安装Nginx
WORKDIR nginx-1.9.7 # 编译安装Nginx
# configure --prefix=/编译的时候用来指定程序存放路径
RUN ./configure --prefix=/usr/local/nginx&&make&&make install
# 开启80和443端口
EXPOSE 80
EXPOSE 443
# 修改Nginx配置文件,以非daemon方式启动
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
# 复制服务启动脚本并 设置权限
WORKDIR /root/nginx
ADD run.sh /run.sh
RUN chmod 775 /run.sh
# 启动容器时执行脚本内容
CMD ["/run.sh"]
(4)编写执行脚本内容
[root@docker-server docker]# vim run.sh # 创建文件
内容如下:
#!/bin/bash
/usr/local/nginx/sbin/nginx
(5)运行 dockerfile01 生成镜像
[root@docker-server docker]# docker build -f Dockerfile01 -t centos:01 .
(6)运行容器
[root@docker-server docker]# docker run -d -p 80:80 centos:01 # -p:指定端口 ;-P:自动分配端口