Dockerfile 应用案例-搭建Nginx镜像、部署扫雷、部署可道云平台
Dockerfile 应用案例
一、Dockerfile 构建 Nginx 镜像
1、编写 Dockerfile 内容
[root@docker ~]# vim Dockerfile
FROM centos:7
RUN rm -rf /etc/yum.repos.d/*
ADD Centos-7.repo /etc/yum.repos.d/
ADD epel-7.repo /etc/yum.repos.d/
RUN yum -y install nginx
EXPOSE 80
CMD [ "/usr/sbin/nginx","-g","daemon off;" ]
2、构建镜像
[root@docker ~]# docker build -t nginx:v1 .
3、运行容器
[root@docker ~]# docker run -itd --name nginx -p 80:80 nginx:v1
4、查看运行状态
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
928784fdfc50 nginx:v1 "/usr/sbin/nginx -g …" 4 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp nginx
5、进入容器
发现默认网页 index.html 错误
[root@docker ~]# docker exec -it nginx /bin/bash
[root@928784fdfc50 /]# cd /usr/share/nginx/html/
[root@928784fdfc50 html]# ls
6、修改并验证
[root@928784fdfc50 html]# rm -rf index.html
[root@928784fdfc50 html]# echo 12345 > index.html
二、Dockerfile 部署扫雷游戏
环境
1、编写 Dockerfile 内容
[root@docker ~]# vim Dockerfile
FROM centos:7
RUN rm -rf /etc/yum.repos.d/*
ADD Centos-7.repo /etc/yum.repos.d/
ADD epel-7.repo /etc/yum.repos.d/
RUN yum -y install tomcat unzip
WORKDIR /var/lib/tomcat/webapps/
ADD saolei.zip .
RUN unzip saolei.zip && mv saolei ROOT
ADD init.sh /init.sh
EXPOSE 8080
CMD [ "/bin/bash","/init.sh" ]
2、新建 init.sh 脚本
[root@docker ~]# vim init.sh
#!/bin/bash
/usr/libexec/tomcat/server start
3、构建镜像
[root@docker ~]# docker build -t saolei:v1 .
4、运行容器
[root@docker ~]# docker run -itd --name saolei -P saolei:v1
5、查看运行状态
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dd8284b90fb9 saolei:v1 "/bin/bash /init.sh" 4 seconds ago Up 3 seconds 0.0.0.0:32768->8080/tcp, :::32768->8080/tcp saolei
6、访问网页
三、Dockerfile 可道云平台部署
1、目录结构准备
[root@docker ~]# mkdir -p /opt/dockerfile/kod
[root@docker ~]# cd /opt/dockerfile/kod/
2、环境准备
3、Nginx 配置文件
内容
worker_processes 1;
events {worker_connections 1024;
}
http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;location / {root /code;index index.php index.html index.htm;}location ~ \.php$ {root /code;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /code$fastcgi_script_name;include fastcgi_params;}}
}
4、编写 Dockerfile 内容
[root@docker kod]# vim dockerfile
FROM centos:7
RUN rm -rf /etc/yum.repos.d/*
ADD Centos-7.repo /etc/yum.repos.d/
ADD epel-7.repo /etc/yum.repos.d/
RUN yum -y install nginx php-fpm php-gd php-mbstring unzip
RUN sed -i '/^user/c user=nginx' /etc/php-fpm.d/www.conf
RUN sed -i '/^group/c group=nginx' /etc/php-fpm.d/www.conf
COPY nginx.conf /etc/nginx/nginx.conf
RUN mkdir /code
WORKDIR /code
ADD kodexplorer4.40.zip .
RUN unzip kodexplorer4.40.zip
RUN chown -R nginx.nginx .
ADD init.sh /init.sh
EXPOSE 80
CMD [ "/bin/bash","/init.sh" ]
5、新建 init.sh 脚本
[root@docker kod]# vim init.sh
#!/bin/bash
php-fpm -D
nginx -g 'daemon off;'
6、构建镜像
[root@docker kod]# docker build -t kod:v1 .
7、运行容器
[root@docker kod]# docker run -itd --name kod -P kod:v1
8、查看运行状态
[root@docker kod]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
558fe1224a75 kod:v1 "/bin/bash /init.sh" 6 seconds ago Up 5 seconds 0.0.0.0:32769->80/tcp, :::32769->80/tcp kod