【docker】nginx镜像制作与集群发布

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值