IP:web1:172.16.0.2
web2:172.16.0.3
web3:172.16.0.4
主机:192.168.1.11
1. 开启路由转发
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl –p
2. 利用Dockerfile构建镜像
[root@localhost ~]# docker build -t nginx https://pan.shuaiguoer.com/dockerfile/nginx
[root@localhost ~]# cat nginx
FROM centos
RUN yum -y install gcc*
RUN yum -y install net-tools
RUN yum -y install openssl
RUN yum -y install zlib-devel
RUN yum -y install pcre-devel
RUN mkdir /root/nginx
ADD http://nginx.org/download/nginx-1.16.0.tar.gz /root/nginx
RUN tar -zxf /root/nginx/nginx-1.16.0.tar.gz -C /root/nginx
WORKDIR /root/nginx/nginx-1.16.0/
RUN useradd -s /sbin/nologin -M nginx
RUN ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install
RUN ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
EXPOSE 80
WORKDIR /
RUN nginx
CMD ["nginx", "-g", "daemon off;"]
3. 创建一块网卡
[root@localhost ~]# docker network create --driver bridge --subnet 172.16.0.0/24 --gateway 172.16.0.1 my_net1
a6ceb448bc78dc12681c483c01ed139af7bf5602c731f7e8e16d6c2482b3e6c1
4. 创建3个容器
Web1
[root@localhost ~]# docker run -itd --name web1 --network my_net1 nginx
9633e4b79c1eb458ee3de244cd3dab716f2805f66c174e62c2be49c47596ae5f
Web2
[root@localhost ~]# docker run -itd --name web2 --network my_net1 nginx
dd9fef7c2261e3d31fba0110965aaa0100f6a0867eeee10f339a24fc7467fbc5
Web3
[root@localhost ~]# docker run -itd --name web3 --network my_net1 nginx
73aa3da56833bb0a4af168fd3c36717d79a622c390192a82d35ed42d79235901
5. 创建前端文件
[root@localhost ~]# docker exec -it web1 /bin/bash
[root@9633e4b79c1e /]# echo web1 > /usr/local/nginx/html/index.html
[root@9633e4b79c1e /]# exit
[root@localhost ~]# docker exec -it web2 /bin/bash
[root@dd9fef7c2261 /]# echo web2 > /usr/local/nginx/html/index.html
[root@dd9fef7c2261 /]# exit
[root@localhost ~]# docker exec -it web3 /bin/bash
[root@73aa3da56833 /]# echo web3 > /usr/local/nginx/html/index.html
[root@73aa3da56833 /]# exit
6. 主机也安装nginx
[root@localhost nginx-1.16.0]# vim /usr/local/nginx/conf/nginx.conf
[root@localhost nginx-1.16.0]# nginx -s reload
[root@localhost nginx-1.16.0]# curl 192.168.1.11
web1
[root@localhost nginx-1.16.0]# curl 192.168.1.11
web2
[root@localhost nginx-1.16.0]# curl 192.168.1.11
web3
7. 将自定义docker镜像保存在本地cweb.tar
[root@localhost Docker]# docker save -o cweb.tar nginx:latest
[root@localhost Docker]# ls
cweb.tar