docker案例

1 构建nginx镜像

[root@ws ~]# cat 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@ws ~]# docker build -t nginx1:v1 .
[+] Building 0.1s (10/10) FINISHED                                                                                     docker:default
 => [internal] load build definition from Dockerfile                                                                             0.0s
 => => transferring dockerfile: 232B                                                                                             0.0s
 => [internal] load metadata for docker.io/library/centos:7                                                                      0.0s
 => [internal] load .dockerignore                                                                                                0.0s
 => => transferring context: 2B                                                                                                  0.0s
 => [1/5] FROM docker.io/library/centos:7                                                                                        0.0s
 => [internal] load build context                                                                                                0.0s
 => => transferring context: 66B                                                                                                 0.0s
 => CACHED [2/5] RUN  rm -rf /etc/yum.repos.d/*                                                                                  0.0s
 => CACHED [3/5] ADD Centos-7.repo /etc/yum.repos.d/                                                                             0.0s
 => CACHED [4/5] ADD epel-7.repo /etc/yum.repos.d/                                                                               0.0s
 => CACHED [5/5] RUN yum -y install nginx                                                                                        0.0s
 => exporting to image                                                                                                           0.0s
 => => exporting layers                                                                                                          0.0s
 => => writing image sha256:9938daad6f816166caca430a9093467d92319f05683c684b5f911dc732a16216                                     0.0s
 => => naming to docker.io/library/nginx1:v1                                                                                     0.0s
[root@ws ~]# docker run -itd --name nginx2 -P nginx1:v1 
ec680db05bd6652c88c11518f3dcae6a9aebc6bee2ec70b28d1ca65462243cd0
[root@ws ~]# docker ps
CONTAINER ID   IMAGE       COMMAND                   CREATED         STATUS         PORTS                                     NAMES
ec680db05bd6   nginx1:v1   "/usr/sbin/nginx -g …"   5 seconds ago   Up 3 seconds   0.0.0.0:32771->80/tcp, :::32771->80/tcp   nginx2
[root@ws ~]# docker exec -it nginx2 /bin/bash
[root@ec680db05bd6 /]# cd /usr/share/nginx/
[root@ec680db05bd6 nginx]# ls
html  modules
[root@ec680db05bd6 nginx]# cd html/
[root@ec680db05bd6 html]# ls
404.html  50x.html  en-US  icons  img  index.html  nginx-logo.png  poweredby.png
[root@ec680db05bd6 html]# rm -rf index.html 
[root@ec680db05bd6 html]# echo 123456 > index.html
[root@ec680db05bd6 html]# ls
404.html  50x.html  en-US  icons  img  index.html  nginx-logo.png  poweredby.png

测试

在这里插入图片描述

2 扫雷游戏案例

新建dockerfile

[root@ws ~]# cat 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
RUN mv saolei ROOT
ADD init.sh /init.sh
EXPOSE 8080
CMD ["/bin/bash","/init.sh"]

新建init.sh脚本

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

构建saolei:v1镜像

[root@ws ~]# docker build -t saolei:v1 .
[+] Building 0.1s (15/15) FINISHED                 docker:default
 => [internal] load build definition from Dockerfile         0.0s
 => => transferring dockerfile: 338B                         0.0s
 => [internal] load metadata for docker.io/library/centos:7  0.0s
 => [internal] load .dockerignore                            0.0s
 => => transferring context: 2B                              0.0s
 => [ 1/10] FROM docker.io/library/centos:7                  0.0s
 => [internal] load build context                            0.0s
 => => transferring context: 123B                            0.0s
 => CACHED [ 2/10] RUN  rm -rf /etc/yum.repos.d/*            0.0s
 => CACHED [ 3/10] ADD Centos-7.repo /etc/yum.repos.d/       0.0s
 => CACHED [ 4/10] ADD epel-7.repo /etc/yum.repos.d/         0.0s
 => CACHED [ 5/10] RUN yum -y install tomcat unzip           0.0s
 => CACHED [ 6/10] WORKDIR /var/lib/tomcat/webapps/          0.0s
 => CACHED [ 7/10] ADD saolei.zip .                          0.0s
 => CACHED [ 8/10] RUN unzip saolei.zip                      0.0s
 => CACHED [ 9/10] RUN mv saolei ROOT                        0.0s
 => CACHED [10/10] ADD init.sh /init.sh                      0.0s
 => exporting to image                                       0.0s
 => => exporting layers                                      0.0s
 => => writing image sha256:a21c0af388d89d2282e71cb46031d26  0.0s
 => => naming to docker.io/library/saolei:v1                 0.0s

运行saolei容器

[root@ws ~]# docker run -itd --name saolei -P saolei:v1 
beaa1c2190637e02959ab96e94acb6bf1c0587b22fdd77176b0346b131c1222b
[root@ws ~]# docker ps
CONTAINER ID   IMAGE       COMMAND                   CREATED          STATUS          PORTS                                         NAMES
beaa1c219063   saolei:v1   "/bin/bash /init.sh"      7 seconds ago    Up 6 seconds    0.0.0.0:32773->8080/tcp, :::32773->8080/tcp   saolei
ec680db05bd6   nginx1:v1   "/usr/sbin/nginx -g …"   18 minutes ago   Up 18 minutes   0.0.0.0:32771->80/tcp, :::32771->80/tcp       nginx2

测试

在这里插入图片描述

3 可道云平台案例

[root@ws kod]# pwd 
/opt/dockerfile/kod
[root@ws kod]# rz -E
rz waiting to receive.
[root@ws kod]# rz -E
rz waiting to receive.
[root@ws kod]# ls
kodexplorer4.40.zip  nginx.conf
[root@ws kod]# 
[root@ws kod]# cat 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
ENTRYPOINT ["/bin/bash","/init.sh"]
[root@ws kod]# cat init.sh 
#!/bin/bash
php-fpm -D 
nginx -g 'daemon off;'
[root@ws kod]# docker build -t kod:v1 .
[+] Building 67.9s (19/19) FINISHED                                                                                    docker:default
 => [internal] load build definition from dockerfile                                                                             0.0s
 => => transferring dockerfile: 547B                                                                                             0.0s
 => [internal] load metadata for docker.io/library/centos:7                                                                      0.0s
 => [internal] load .dockerignore                                                                                                0.0s
 => => transferring context: 2B                                                                                                  0.0s
 => [ 1/14] FROM docker.io/library/centos:7                                                                                      0.0s
 => [internal] load build context                                                                                                0.0s
 => => transferring context: 163B                                                                                                0.0s
 => CACHED [ 2/14] RUN rm -rf /etc/yum.repos.d/*                                                                                 0.0s
 => CACHED [ 3/14] ADD Centos-7.repo /etc/yum.repos.d/                                                                           0.0s
 => CACHED [ 4/14] ADD epel-7.repo /etc/yum.repos.d/                                                                             0.0s
 => [ 5/14] RUN yum -y install nginx php-fpm php-gd php-mbstring unzip                                                          60.4s
 => [ 6/14] RUN sed -i '/^user/c user=nginx' /etc/php-fpm.d/www.conf                                                             0.5s 
 => [ 7/14] RUN sed -i '/^group/c group=nginx' /etc/php-fpm.d/www.conf                                                           0.5s 
 => [ 8/14] COPY nginx.conf /etc/nginx/nginx.conf                                                                                0.1s 
 => [ 9/14] RUN mkdir /code                                                                                                      0.5s 
 => [10/14] WORKDIR /code                                                                                                        0.1s 
 => [11/14] COPY kodexplorer4.40.zip .                                                                                           0.1s 
 => [12/14] RUN unzip kodexplorer4.40.zip                                                                                        1.4s
 => [13/14] RUN chown -R nginx.nginx .                                                                                           2.3s
 => [14/14] ADD init.sh /init.sh                                                                                                 0.1s 
 => exporting to image                                                                                                           1.8s 
 => => exporting layers                                                                                                          1.8s 
 => => writing image sha256:12d0fbbcfedc820565f9d651dbbfc894948cca49ae65982b63cc422c69f15a60                                     0.0s 
 => => naming to docker.io/library/kod:v1                        
 0.0s
 [root@ws kod]# docker run -itd --name kod -P kod:v1 
08d0a2776b89be44621fdabbba4eb5d348cbda782c6e172e65b6a94429a1b195
[root@ws kod]# docker ps
CONTAINER ID   IMAGE       COMMAND                   CREATED          STATUS          PORTS                                         NAMES
08d0a2776b89   kod:v1      "/bin/bash /init.sh"      6 seconds ago    Up 5 seconds    0.0.0.0:32774->80/tcp, :::32774->80/tcp       kod
beaa1c219063   saolei:v1   "/bin/bash /init.sh"      22 minutes ago   Up 22 minutes   0.0.0.0:32773->8080/tcp, :::32773->8080/tcp   saolei
ec680db05bd6   nginx1:v1   "/usr/sbin/nginx -g …"   41 minutes ago   Up 41 minutes   0.0.0.0:32771->80/tcp, :::32771->80/tcp       nginx2

测试

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐