Docker:构建nginx镜像,扫雷,可道云平台

用dockerfile在centos7的基础上构建nginx的镜像

[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;"]
[root@docker ~]# docker build -t nginx:v1 .
[root@docker ~]# docker run -itd --name nginx -P nginx:v1
85a277b8b628d7a5f71879318eef57339244bef5dffb3cc441062414112ceba3
[root@docker ~]# docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED          STATUS          PORTS                                     NAMES
85a277b8b628   nginx:v1   "/usr/sbin/nginx -g …"   16 seconds ago   Up 15 seconds   0.0.0.0:32768->80/tcp, :::32768->80/tcp   nginx

访问网页测试

在这里插入图片描述

发现没有网页。我们进到nginx里查看

[root@docker ~]# docker exec -it nginx /bin/bash

在这里插入图片描述

发现网页故障,我们重新覆盖一下网页

[root@85a277b8b628 html]# rm -rf index.html 
[root@85a277b8b628 html]# echo testnginx > index.html

再次测试,发现能够成功访问

在这里插入图片描述

扫雷案例

我们可以通过网页下载扫雷,也可以用本地的扫雷包来完成

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"]

创建init.sh的脚本

[root@docker ~]# vim init.sh
#!/bin/bash
/usr/libexec/tomcat/server start

构建saolei的镜像

[root@docker ~]# docker build -t saolei:v1 .

运行saolei容器

[root@docker ~]# docker run -itd --name saolei -P saolei:v1
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                                         NAMES
4c88be42ec37   saolei:v1   "/bin/bash /init.sh"     26 seconds ago   Up 25 seconds   0.0.0.0:32769->8080/tcp, :::32769->8080/tcp   saolei
85a277b8b628   nginx:v1    "/usr/sbin/nginx -g …"   24 minutes ago   Up 24 minutes   0.0.0.0:32768->80/tcp, :::32768->80/tcp       nginx

查看

在这里插入图片描述

查看192.168.100.10:32769/saolei.jsp发现成功

构建可道云镜像

[root@docker ~]# mkdir dockerfile
[root@docker ~]# cd dockerfile/
[root@docker dockerfile]# mkdir kod
[root@docker dockerfile]# cd kod/
[root@docker kod]# ls
Centos-7.repo  epel-7.repo          nginx.conf
dockerfile     kodexplorer4.40.zip
[root@docker kod]# cat nginx.conf 
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; 
		}
	} 
}
[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
COPY 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"]
[root@docker kod]# vim init.sh
#!/bin/bash
php-fpm -D
nginx -g 'daemon off;'

构建镜像

[root@docker kod]# docker build -t kod:v3 .

运行

[root@docker kod]# docker run -itd --name kod -P kod:v3
[root@docker kod]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                                         NAMES
61d6aa421b80   kod:v3      "/bin/bash /init.sh"     19 seconds ago   Up 19 seconds   0.0.0.0:32770->80/tcp, :::32770->80/tcp       kod
4c88be42ec37   saolei:v1   "/bin/bash /init.sh"     29 minutes ago   Up 29 minutes   0.0.0.0:32769->8080/tcp, :::32769->8080/tcp   saolei
85a277b8b628   nginx:v1    "/usr/sbin/nginx -g …"   54 minutes ago   Up 54 minutes   0.0.0.0:32768->80/tcp, :::32768->80/tcp       nginx

查看

在这里插入图片描述

在这里插入图片描述

Logo

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

更多推荐