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
9、访问网页

在这里插入图片描述

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐