1.准备nginx配置文件
vi nginx.conf
[root@es1 nginx]# ll
total 5160
-rwxr--r-- 1 root root 72 Jul 5 15:42 docker-build-nginx.sh
-rwxr--r-- 1 root root 75 Jul 5 15:49 docker-build-nginxweb.sh
-rw-r--r-- 1 root root 337 Jul 5 15:49 dockerfile-nginx-web.yml
-rw-r--r-- 1 root root 878 Jul 5 15:40 dockerfile-nginx.yml
-rw-r--r-- 1 root root 1062124 Jul 5 15:38 nginx-1.20.2.tar.gz
-rw-r--r-- 1 root root 733 Jul 5 15:39 nginx.conf
-rw-r--r-- 1 root root 4198241 Jul 5 15:49 web-html.zip
2.创建镜像
chmod u+x docker-build-nginx.sh
./docker-build-nginx.sh
--创建镜像。
...............
Removing intermediate container 0a4866512828
---> 9579d2d7e734
Successfully built 9579d2d7e734
Successfully tagged nginx:1.20.2.base
3.运行容器
docker run -itd --name mynginxweb -h mynginxweb -p 8081:80 nginx:1.20.2.base
[root@es1 nginx]# docker run -itd --name mynginxweb -h mynginxweb -p 8081:80 nginx:1.20.2.base
f37702dd598c61a7ff36a323232da6fd47cc30d395ad9a3f3f21a77a45ac0754
curl http://192.168.1.7:8081/index.html
[root@es1 nginx]# curl http://192.168.1.7:8081/index.html
hello,我不需要那么花里胡哨
4.上传镜像到harbor
--docker rm -f 26814d9dcc47
docker tag nginx:1.20.2.base 192.168.1.11:443/myharbor/nginx:1.20.2.base
docker push 192.168.1.11:443/myharbor/nginx:1.20.2.base
[root@es1 nginx]# docker push 192.168.1.11:443/myharbor/nginx:1.20.2.base
The push refers to repository [192.168.1.11:443/myharbor/nginx]
14a963daca94: Pushed
50d2931a922f: Pushed
7e3f07367da0: Pushed
d81c9131a9b0: Pushed
0ef25590927b: Pushed
53c61a520c85: Mounted from myharbor/httpd
88765da43086: Mounted from myharbor/httpd
2ca40431ab7d: Mounted from myharbor/httpd
caceb42f09c2: Mounted from myharbor/httpd
5b1d42135d46: Mounted from myharbor/httpd
174f56854903: Mounted from myharbor/httpd
1.20.2.base: digest: sha256:d0ac8232fb9a97fbf82e9f868ce01c0d8ee7e863ff5337e6391c33e29942a6cb size: 2616
5.nginx应用发布镜像。
cd /data/nginx
cat > dockerfile-nginx-web.yml << EOF
EOF
*/
cd /data/fgnginx
cat > docker-build-nginxweb.sh << EOF
EOF
chmod u+x docker-build-nginxweb.sh
./docker-build-nginxweb.sh
...........................
Removing intermediate container b9ed6f5abbb7
---> ce4b5027e415
Successfully built ce4b5027e415
Successfully tagged nginx:1.20.2.web
docker run -itd --name mynginx1 p 9001:80 nginx:1.20.2.web
docker exec -it mynginx1 bash
[root@es1 nginx]# docker run -itd --name mynginx1 -h mynginx1 -p 9001:80 nginx:1.20.2.web
9db487a98f1963191285471a1d0cbeccc4235b64937b31c0d3ff5d48bb586937
[root@es1 nginx]#
[root@es1 nginx]# docker exec -it mynginx1 bash
[root@mynginx1 nginx]# ls
client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp uwsgi_temp
curl http://192.168.1.7:9001
docker tag nginx:1.20.2.web 192.168.1.11:443/myharbor/nginx:1.20.2.web
docker push 192.168.1.11:443/myharbor/nginx:1.20.2.web
[root@es1 nginx]# docker push 192.168.1.11:443/myharbor/nginx:1.20.2.web
The push refers to repository [192.168.1.11:443/myharbor/nginx]
9b3bfbf9b218: Pushed
8a318dd9396d: Pushed
14a963daca94: Layer already exists
50d2931a922f: Layer already exists
7e3f07367da0: Layer already exists
d81c9131a9b0: Layer already exists
0ef25590927b: Layer already exists
53c61a520c85: Layer already exists
88765da43086: Layer already exists
2ca40431ab7d: Layer already exists
caceb42f09c2: Layer already exists
5b1d42135d46: Layer already exists
174f56854903: Layer already exists
1.20.2.web: digest: sha256:3c54ab2391c88eccb630bdfe995a3f7a919dc7e7e51909f61c6bd6f5cad08005 size: 3038
docker ps
[root@es1 nginx]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9db487a98f19 nginx:1.20.2.web "nginx -g 'daemon of…" 3 minutes ago Up 3 minutes 0.0.0.0:9001->80/tcp, :::9001->80/tcp mynginx1
f37702dd598c nginx:1.20.2.base "nginx -g 'daemon of…" 10 minutes ago Up 10 minutes 0.0.0.0:8081->80/tcp, :::8081->80/tcp mynginxweb
docker rm -f mynginx1
docker node ls
[root@es1 nginx]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
lbcg0z4t2n3lgn4nld4brdsx7 * es1 Ready Active Leader 20.10.16
gtwzo26t996ht7ohfsy533l2u es2 Ready Active 20.10.16
v5zlbhia4kial3jqjadqm7xia es3 Ready Active 20.10.16
--使用overlay网络。
docker network ls | grep net_overlay
[root@es1 nginx]# docker network ls | grep net_overlay
j00ptzxgkl4z net_overlay overlay swarm
--创建个6个容器实例。
docker service create --replicas 6 --network net_overlay \
-p 8010:80 192.168.1.11:443/myharbor/nginx:1.20.2.web
[root@es1 nginx]# docker service create --replicas 6 --name mynginxweb1 --network net_overlay \
> -p 8010:80 192.168.1.11:443/myharbor/nginx:1.20.2.web
utgobqtk7s2mxaa2atjmkaqgz
overall progress: 6 out of 6 tasks
1/6: running
2/6: running
3/6: running
4/6: running
5/6: running
6/6: running
verify: Service converged
--检查容器
docker service ls
docker service ps mynginxweb1
docker service scale mynginxweb1=10 --扩容到10个ngginx;
[root@es1 nginx]# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
utgobqtk7s2m mynginxweb1 replicated 6/6 192.168.1.11:443/myharbor/nginx:1.20.2.web *:8010->80/tcp
[root@es1 nginx]# docker service ps mynginxweb1
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
jrz2ifuh1aq9 mynginxweb1.1 192.168.1.11:443/myharbor/nginx:1.20.2.web es1 Running Running 41 seconds ago
vserj4p976uk mynginxweb1.2 192.168.1.11:443/myharbor/nginx:1.20.2.web es3 Running Running 35 seconds ago
mwt10wck9u3t mynginxweb1.3 192.168.1.11:443/myharbor/nginx:1.20.2.web es2 Running Running 36 seconds ago
so9kvdupchhh mynginxweb1.4 192.168.1.11:443/myharbor/nginx:1.20.2.web es1 Running Running 41 seconds ago
sywwueqp322j mynginxweb1.5 192.168.1.11:443/myharbor/nginx:1.20.2.web es3 Running Running 35 seconds ago
bntt8je2bwbr mynginxweb1.6 192.168.1.11:443/myharbor/nginx:1.20.2.web es2 Running Running 36 seconds ago
--扩容
[root@es1 nginx]# docker service scale mynginxweb1=10
mynginxweb1 scaled to 10
overall progress: 10 out of 10 tasks
1/10: running
2/10: running
3/10: running
4/10: running
5/10: running
6/10: running
7/10: running
8/10: running
9/10: running
10/10: running
verify: Service converged
[root@es1 nginx]# docker service ps mynginxweb1
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
jrz2ifuh1aq9 mynginxweb1.1 192.168.1.11:443/myharbor/nginx:1.20.2.web es1 Running Running about a minute ago
vserj4p976uk mynginxweb1.2 192.168.1.11:443/myharbor/nginx:1.20.2.web es3 Running Running about a minute ago
mwt10wck9u3t mynginxweb1.3 192.168.1.11:443/myharbor/nginx:1.20.2.web es2 Running Running about a minute ago
so9kvdupchhh mynginxweb1.4 192.168.1.11:443/myharbor/nginx:1.20.2.web es1 Running Running about a minute ago
sywwueqp322j mynginxweb1.5 192.168.1.11:443/myharbor/nginx:1.20.2.web es3 Running Running about a minute ago
bntt8je2bwbr mynginxweb1.6 192.168.1.11:443/myharbor/nginx:1.20.2.web es2 Running Running about a minute ago
ujsxhshewh27 mynginxweb1.7 192.168.1.11:443/myharbor/nginx:1.20.2.web es1 Running Running 17 seconds ago
s0rn4htzx7na mynginxweb1.8 192.168.1.11:443/myharbor/nginx:1.20.2.web es1 Running Running 17 seconds ago
jlblclajl532 mynginxweb1.9 192.168.1.11:443/myharbor/nginx:1.20.2.web es3 Running Running 18 seconds ago
jb77ic3zz2l3 mynginxweb1.10 192.168.1.11:443/myharbor/nginx:1.20.2.web es2 Running Running 19 seconds ago
--访问nginx;
curl http://192.168.1.7:8010
--删除容器。
docker service rm mynginxweb1
[root@es1 nginx]# docker service rm mynginxweb1
mynginxweb1