1.配置规划
管理:mysql+nginx+tomcat
docker-compose文件准备
--需要注意缩进关系
cd /data/
cat > docker-compose1.yml << EOF
EOF
2.通过这个yml 文件部署服务。
docker stack deploy -c docker-compose1.yml myapp
[root@es1 data]# docker stackfz deploy -c docker-compose1.yml myapp
Creating network myapp_default
Creating service myapp_tomcat
Creating service myapp_nginx
Creating service myapp_mysql
3.查看创建的服务
[root@es1 data]# docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
nrl00640u1bs myapp_mysql replicated 1/1 192.168.1.11:443/myharbor/mysql:5.7.21 *:33306->3306/tcp
q1cz0emg9he7 myapp_nginx replicated 3/3 192.168.1.11:443/myharbor/nginx:latest *:8880->80/tcp
uvu0uvkegsz5 myapp_tomcat replicated 3/3 192.168.1.11:443/myharbor/tomcat:10.0.0-jdk8 *:8080->8080/tcp
p8dltoenq5rc mynginx5 replicated 3/3 192.168.1.11:443/myharbor/nginx:latest *:8014->80/tcp
[root@es1 data]# docker service ps myapp_mysql
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
o8vhvv96sow7 myapp_mysql.1 192.168.1.11:443/myharbor/mysql:5.7.21 es2 Running Running 53 seconds ago
[root@es1 data]# docker service ps myapp_tomcat
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
ueiaqyakfpf8 myapp_tomcat.1 192.168.1.11:443/myharbor/tomcat:10.0.0-jdk8 es3 Running Running about a minute ago
tm5brno15x92 myapp_tomcat.2 192.168.1.11:443/myharbor/tomcat:10.0.0-jdk8 es2 Running Running about a minute ago
t73rn5dhioce myapp_tomcat.3 192.168.1.11:443/myharbor/tomcat:10.0.0-jdk8 es1 Running Running about a minute ago
[root@es1 data]# docker service ps myapp_nginx
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
hvxobtzzmpmb myapp_nginx.1 192.168.1.11:443/myharbor/nginx:latest es1 Running Running about a minute ago
aqlpc7bkds9r myapp_nginx.2 192.168.1.11:443/myharbor/nginx:latest es3 Running Running about a minute ago
lb2i8z14ev1w myapp_nginx.3 192.168.1.11:443/myharbor/nginx:latest es2 Running Running about a minute ago
4.访问服务
--访问Mysql;
[root@es1 data]# mysql -uroot -prootroot -P33306 -h192.168.1.7
Logging to file '/data/mysql/logs/query.log'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
"root@192.168.1.7 Fri Jul 5 09:44:59 2024 09:44:59 [(none)]">show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
5 rows in set (0.01 sec)
"root@192.168.1.7 Fri Jul 5 09:45:04 2024 09:45:04 [(none)]">create database mydb1;
Query OK, 1 row affected (0.00 sec)
"root@192.168.1.7 Fri Jul 5 09:45:15 2024 09:45:15 [(none)]">use mydb1;
Database changed
"root@192.168.1.7 Fri Jul 5 09:45:18 2024 09:45:18 [mydb1]">create table my_tab1(id int,name varchar(20));
Query OK, 0 rows affected (0.01 sec)
"root@192.168.1.7 Fri Jul 5 09:45:37 2024 09:45:37 [mydb1]">insert into my_tab1 values(1,'xsq1'),(2,'xsq2'),(3,'xsq3');
Query OK, 3 rows affected (0.11 sec)
Records: 3 Duplicates: 0 Warnings: 0
"root@192.168.1.7 Fri Jul 5 09:46:03 2024 09:46:03 [mydb1]">select * from my_tab1;
+------+------+
| id | name |
+------+------+
| 1 | xsq1 |
| 2 | xsq2 |
| 3 | xsq3 |
+------+------+
3 rows in set (0.00 sec)
--容器启动时需要有一个命令,否则不能启动。
docker service create --network myapp_default --name linuxtools \
--replicas 2 192.168.1.11:443/myharbor/busybox:1.28.3 ping 192.168.1.1
--创建一个busybox服务
[root@es1 data]# docker service create --network myapp_default --name linuxtools \
> --replicas 2 192.168.1.11:443/myharbor/busybox:1.28.3 ping 192.168.1.1
3j14o6szt1a8erxm1t0jhhg8d
overall progress: 2 out of 2 tasks
1/2: running
2/2: running
verify: Service converged
[root@es1 data]# docker service ps linuxtools
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
za049gh52ndh linuxtools.1 192.168.1.11:443/myharbor/busybox:1.28.3 es3 Running Running 34 seconds ago
xh1c3lbbo2e8 linuxtools.2 192.168.1.11:443/myharbor/busybox:1.28.3 es1 Running Running 35 seconds ago
[root@es1 data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
56ebe820dc4a 192.168.1.11:443/myharbor/busybox:1.28.3 "ping 192.168.1.1" 2 minutes ago Up 2 minutes linuxtools.2.xh1c3lbbo2e8029ic4zftaats
a227ddb8107c 192.168.1.11:443/myharbor/tomcat:10.0.0-jdk8 "catalina.sh run" 17 minutes ago Up 17 minutes 8080/tcp myapp_tomcat.3.t73rn5dhioce428mqh1tza9s3
1fd581b7711d 192.168.1.11:443/myharbor/nginx:latest "/docker-entrypoint.…" 17 minutes ago Up 17 minutes 80/tcp myapp_nginx.1.hvxobtzzmpmbbtxeaeqpp8yps
[root@es1 data]# docker exec -it linuxtools.2.xh1c3lbbo2e8029ic4zftaats nslookup myapp_mysql
Server: 127.0.0.11
Address 1: 127.0.0.11
Name: myapp_mysql
Address 1: 10.0.1.13
[root@es1 data]# docker exec -it linuxtools.2.xh1c3lbbo2e8029ic4zftaats ping www.baidu.com
PING www.baidu.com (183.2.172.185): 56 data bytes
64 bytes from 183.2.172.185: seq=0 ttl=52 time=35.330 ms
64 bytes from 183.2.172.185: seq=1 ttl=52 time=35.429 ms
64 bytes from 183.2.172.185: seq=2 ttl=52 time=35.927 ms
64 bytes from 183.2.172.185: seq=3 ttl=52 time=36.417 ms
^C
--- www.baidu.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 35.330/35.775/36.417 ms