dockerfile案例
nginx
1.将Centos-7 . repo 、 epel-7 . repo 文件拖进虚拟机
[root@yyy ~]# ll
total 13592
-rw-r--r--. 1 root root 2523 Aug 29 11:00 Centos-7.repo
-rw-r--r--. 1 root root 341 Aug 31 06:09 Dockerfile
-rw-r--r--. 1 root root 664 Aug 29 11:00 epel-7.repo
-rw-r--r--. 1 root root 45 Aug 31 06:10 init.sh
-rw-r--r--. 1 root root 13894810 Aug 29 11:03 kodexplorer4.40.zip
-rw-r--r--. 1 root root 523 Aug 29 11:03 nginx.txt
2.部署dockerfile
[root@yyy ~]# vim dockerfile
FROM centos:7
MAINTAINER zhengbichao@example.com
ADD Centos-7.repo /etc/yum.repos.d/
ADD epel-7.repo /etc/yum.repos.d/
RUN yum install -y nginx
EXPOSE 80
CMD ["/usr/sbin/nginx","-g","daemon off;"]
3.构建镜像,镜像名称为nginx:v1
[root@yyy ~]# docker build -t nginx:z1 .
Successfully built a92337fcd12c
Successfully tagged nginx:z1
4.运行容器 ,映射端口为88:80
[root@yyy ~]# docker run -d --name zhengbichao -p 88:80 nginx:z1
4638b6c17614bff7a0573eff47d3b42323300f395cfa6bc5bc01e1d4ec458fcd
[root@yyy ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4638b6c17614 nginx:z1 "/usr/sbin/nginx -g …" 3 seconds ago Up 2 seconds 0.0.0.0:88->80/tcp, :::88->80/tcp zhengbichao
5.进入容器,删除默认网页,写入新的默认网页
[root@yyy ~]# docker exec -it zhengbichao /bin/bash
[root@4638b6c17614 /]# cd /usr/share/nginx/html/
[root@4638b6c17614 html]# ll
total 12
-rw-r--r--. 1 root root 3650 Oct 18 2021 404.html
-rw-r--r--. 1 root root 3693 Oct 18 2021 50x.html
lrwxrwxrwx. 1 root root 20 Aug 30 23:05 en-US -> ../../doc/HTML/en-US
drwxr-xr-x. 2 root root 27 Aug 30 23:05 icons
lrwxrwxrwx. 1 root root 18 Aug 30 23:05 img -> ../../doc/HTML/img
lrwxrwxrwx. 1 root root 25 Aug 30 23:05 index.html -> ../../doc/HTML/index.html
-rw-r--r--. 1 root root 368 Oct 18 2021 nginx-logo.png
lrwxrwxrwx. 1 root root 14 Aug 30 23:05 poweredby.png -> nginx-logo.png
[root@4638b6c17614 html]# rm -rf index.html
[root@4638b6c17614 html]# vim index.html
bash: vim: command not found
[root@4638b6c17614 html]# vi index.html
扫雷
做前准备
1.在一号虚拟机下载httpd并设置开机自启
[root@zzz ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@zzz ~]# yum install -y httpd
[root@zzz ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
2.上传扫雷的软件包
[root@zzz ~]# cd /var/www/html/
[root@zzz html]# rz -E
rz waiting to receive.
[root@zzz html]# ll
total 244
-rw-r--r--. 1 root root 247278 Aug 29 11:03 saolei.zip
防火墙
[root@zzz ~]# systemctl stop firewalld
[root@zzz ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@zzz ~]# vi /etc/selinux/config
···
SELINUX=disabled
···
部署Dockerfile
1.在二号虚拟机上下载lrzsz,将Centos-7 . repo 、 epel-7 . repo 文件拖进虚拟机
[root@yyy ~]# rz -E
rz waiting to receive.
[root@yyy ~]# rz -E
rz waiting to receive.
[root@yyy ~]# ll
total 8
-rw-r--r--. 1 root root 2523 Aug 29 11:00 Centos-7.repo
-rw-r--r--. 1 root root 664 Aug 29 11:00 epel-7.repo
2.编辑dockerfile
[root@yyy ~]# vim Dockerfile
FROM centos:7
MAINTAINER zhengbichao@example.com
ADD Centos-7.repo /etc/yum.repos.d/
ADD epel-7.repo /etc/yum.repos.d/
RUN yum install -y tomcat unzip curl
WORKDIR /var/lib/tomcat/webapps/
RUN curl -O http://192.168.87.128/saolei.zip && \
unzip saolei.zip && \
mv saolei ROOT
ADD init.sh /init.sh
EXPOSE 8080
CMD ["/bin/bash","/init.sh"]
[root@yyy ~]# vim init.sh
#!/bin/bash
/usr/libexec/tomcat/server start
3.构建镜像
[root@yyy ~]# docker build -t saolei:z1 .
Successfully built 4c934871209c
Successfully tagged saolei:z1
4.运行容器
[root@yyy ~]# docker run -d --name zhengbichao -p 8081:8080 saolei:z1
b735d8127032c606894ebd7b2ac54f8d1e0c6c7c2dc40de6f535181529293c60
[root@yyy ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b735d8127032 saolei:z1 "/bin/bash /init.sh" 6 seconds ago Up 5 seconds 0.0.0.0:8081->8080/tcp, :::8081->8080/tcp zhengbichao
可道云
1.将kodexplo re r4.40.zi p 和 nginx . txt 文件拖至该虚拟机中
[root@yyy ~]# ll
total 16
-rw-r--r--. 1 root root 2523 Aug 29 11:00 Centos-7.repo
-rw-r--r--. 1 root root 341 Aug 31 06:09 Dockerfile
-rw-r--r--. 1 root root 664 Aug 29 11:00 epel-7.repo
-rw-r--r--. 1 root root 45 Aug 31 06:10 init.sh
[root@yyy ~]# rz -E
rz waiting to receive.
[root@yyy ~]# rz -E
rz waiting to receive.
[root@yyy ~]# ll
total 13592
-rw-r--r--. 1 root root 2523 Aug 29 11:00 Centos-7.repo
-rw-r--r--. 1 root root 341 Aug 31 06:09 Dockerfile
-rw-r--r--. 1 root root 664 Aug 29 11:00 epel-7.repo
-rw-r--r--. 1 root root 45 Aug 31 06:10 init.sh
-rw-r--r--. 1 root root 13894810 Aug 29 11:03 kodexplorer4.40.zip
-rw-r--r--. 1 root root 523 Aug 29 11:03 nginx.txt
2.创建/opt/dockerfile/kod目录,将所需的软件包和文件放置该目录下
[root@yyy ~]# mkdir -p /opt/dackerfile/kod/
[root@yyy ~]# cd /opt/dackerfile/kod/
[root@yyy kod]# cp /root/* /opt/dackerfile/kod/
[root@yyy kod]# mv nginx.txt nginx.conf
[root@yyy kod]# ls
Centos-7.repo Dockerfile epel-7.repo init.sh kodexplorer4.40.zip nginx.conf
3、在该目录下编辑dockerfile,使用基础镜像centos:7
[root@yyy kod]# vim dockerfile
FROM centos:7
ADD Centos-7.repo /etc/yum.repos.d/
ADD epel-7.repo /etc/yum.repos.d/
RUN yum install -y nginx php-fpm php-gd php-mbstring unzip && \
sed -i '/^user/c user=nginx' /etc/php-fpm.d/www.conf && \
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 && \
chown -R nginx.nginx .
ADD init.sh /init.sh
EXPOSE 80
ENTRYPOINT ["/bin/bash","/init.sh"]
[root@yyy kod]# vim init.sh
#!/bin/bash
php-fpm -D
echo "$1" >> /etc/nginx/nginx.conf
nginx -g 'daemon off;'
4、构建镜像kod:v1
[root@yyy kod]# docker build -t kod:v1 .
Successfully built eeb98b2b3d98
Successfully tagged kod:v1
5、运行容器,指定映射端口80:80
[root@yyy kod]# docker run -d --name zhengbichao -p 80:80 kod:v1
bd441fb33fb5cca8685ee9312571b04cb0187b7d414e677a61d7923c4d6299cb
[root@yyy kod]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bd441fb33fb5 kod:v1 "/bin/bash /init.sh" 2 seconds ago Up 2 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp zhengbichao