单机编排工具之docker-compose快速入门使用

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 这篇文章是关于如何使用docker-compose进行单机编排的快速入门指南,包括了镜像准备、docker-compose安装、使用教程以及验证服务生效的步骤。

作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.实验镜像准备

1>.自行安装harbor服务及制作web服务镜像

  配置Harbor支持https功能实战篇:
    https://www.cnblogs.com/yinzhengjie/p/12237263.html
  自定义haproxy镜像:
    https://www.cnblogs.com/yinzhengjie/p/12231702.html
  自定义tomcat业务镜像:
    https://www.cnblogs.com/yinzhengjie/p/12230043.html
  基于DockerFile制作yum版nginx镜像:
    https://www.cnblogs.com/yinzhengjie/p/12194460.html

2>.在harbor服务端新建镜像仓库

3>.将haproxy镜像推送到harbor服务器端

[root@docker101.yinzhengjie.org.cn ~]# docker image ls
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
nginx                    v0.1-20200201       1a8b4f68e96a        27 hours ago        449MB
centos-haproxy           v1.8.20             1858fe05d96f        9 days ago          606MB
registry                 latest              708bc6af7e5e        9 days ago          25.8MB
tomcat-app01             v0.1                bf45c22f2d5b        10 days ago         983MB
tomcat-base              8.5.50              9ff79f369094        11 days ago         968MB
jdk-base                 1.8.0_231           0f63a97ddc85        11 days ago         953MB
centos-base              7.6.1810            b4931fd9ace2        11 days ago         551MB
centos                   centos7.6.1810      f1cb7c7d58b7        10 months ago       202MB
lorel/docker-stress-ng   latest              1ae56ccafe55        3 years ago         8.1MB
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# docker tag centos-haproxy:v1.8.20 docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy:v1.8.20
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# docker image ls
REPOSITORY                                                TAG                 IMAGE ID            CREATED             SIZE
nginx                                                     v0.1-20200201       1a8b4f68e96a        27 hours ago        449MB
centos-haproxy                                            v1.8.20             1858fe05d96f        9 days ago          606MB
docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy   v1.8.20             1858fe05d96f        9 days ago          606MB
registry                                                  latest              708bc6af7e5e        9 days ago          25.8MB
tomcat-app01                                              v0.1                bf45c22f2d5b        10 days ago         983MB
tomcat-base                                               8.5.50              9ff79f369094        11 days ago         968MB
jdk-base                                                  1.8.0_231           0f63a97ddc85        11 days ago         953MB
centos-base                                               7.6.1810            b4931fd9ace2        11 days ago         551MB
centos                                                    centos7.6.1810      f1cb7c7d58b7        10 months ago       202MB
lorel/docker-stress-ng                                    latest              1ae56ccafe55        3 years ago         8.1MB
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]#

[root@docker101.yinzhengjie.org.cn ~]# docker tag centos-haproxy:v1.8.20 docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy:v1.8.20

[root@docker101.yinzhengjie.org.cn ~]# docker image ls
REPOSITORY                                                TAG                 IMAGE ID            CREATED             SIZE
nginx                                                     v0.1-20200201       1a8b4f68e96a        27 hours ago        449MB
centos-haproxy                                            v1.8.20             1858fe05d96f        9 days ago          606MB
docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy   v1.8.20             1858fe05d96f        9 days ago          606MB
registry                                                  latest              708bc6af7e5e        9 days ago          25.8MB
tomcat-app01                                              v0.1                bf45c22f2d5b        10 days ago         983MB
tomcat-base                                               8.5.50              9ff79f369094        11 days ago         968MB
jdk-base                                                  1.8.0_231           0f63a97ddc85        11 days ago         953MB
centos-base                                               7.6.1810            b4931fd9ace2        11 days ago         551MB
centos                                                    centos7.6.1810      f1cb7c7d58b7        10 months ago       202MB
lorel/docker-stress-ng                                    latest              1ae56ccafe55        3 years ago         8.1MB
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# docker image push docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy
The push refers to repository [docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy]
4aeb0c6e6b59: Pushed 
019912d545c2: Pushed 
47eb3689b39c: Pushed 
c8ff3249af9a: Pushed 
0f448859d86e: Mounted from base_images/centos-base 
89169d87dbe2: Mounted from base_images/centos-base 
v1.8.20: digest: sha256:ba408aaaf5c50c57981444835464acc0ab1b5118c3b7aab54fad907813903eb0 size: 1579
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]#

[root@docker101.yinzhengjie.org.cn ~]# docker image push docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy

4>.将nginx镜像推送到harbor服务器端

[root@docker101.yinzhengjie.org.cn ~]# docker image ls
REPOSITORY                                                TAG                 IMAGE ID            CREATED             SIZE
nginx                                                     v0.1-20200201       1a8b4f68e96a        28 hours ago        449MB
centos-haproxy                                            v1.8.20             1858fe05d96f        9 days ago          606MB
docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy   v1.8.20             1858fe05d96f        9 days ago          606MB
registry                                                  latest              708bc6af7e5e        9 days ago          25.8MB
tomcat-app01                                              v0.1                bf45c22f2d5b        10 days ago         983MB
tomcat-base                                               8.5.50              9ff79f369094        11 days ago         968MB
jdk-base                                                  1.8.0_231           0f63a97ddc85        11 days ago         953MB
centos-base                                               7.6.1810            b4931fd9ace2        11 days ago         551MB
centos                                                    centos7.6.1810      f1cb7c7d58b7        10 months ago       202MB
lorel/docker-stress-ng                                    latest              1ae56ccafe55        3 years ago         8.1MB
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# docker image tag nginx:v0.1-20200201 docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx:v1.14.2
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# docker image ls
REPOSITORY                                                TAG                 IMAGE ID            CREATED             SIZE
nginx                                                     v0.1-20200201       1a8b4f68e96a        28 hours ago        449MB
docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx     v1.14.2             1a8b4f68e96a        28 hours ago        449MB
docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy   v1.8.20             1858fe05d96f        9 days ago          606MB
centos-haproxy                                            v1.8.20             1858fe05d96f        9 days ago          606MB
registry                                                  latest              708bc6af7e5e        9 days ago          25.8MB
tomcat-app01                                              v0.1                bf45c22f2d5b        10 days ago         983MB
tomcat-base                                               8.5.50              9ff79f369094        11 days ago         968MB
jdk-base                                                  1.8.0_231           0f63a97ddc85        11 days ago         953MB
centos-base                                               7.6.1810            b4931fd9ace2        11 days ago         551MB
centos                                                    centos7.6.1810      f1cb7c7d58b7        10 months ago       202MB
lorel/docker-stress-ng                                    latest              1ae56ccafe55        3 years ago         8.1MB
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]#

[root@docker101.yinzhengjie.org.cn ~]# docker image tag nginx:v0.1-20200201 docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx:v1.14.2

[root@docker101.yinzhengjie.org.cn ~]# docker image ls
REPOSITORY                                                TAG                 IMAGE ID            CREATED             SIZE
nginx                                                     v0.1-20200201       1a8b4f68e96a        28 hours ago        449MB
docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx     v1.14.2             1a8b4f68e96a        28 hours ago        449MB
centos-haproxy                                            v1.8.20             1858fe05d96f        9 days ago          606MB
docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy   v1.8.20             1858fe05d96f        9 days ago          606MB
registry                                                  latest              708bc6af7e5e        9 days ago          25.8MB
tomcat-app01                                              v0.1                bf45c22f2d5b        10 days ago         983MB
tomcat-base                                               8.5.50              9ff79f369094        11 days ago         968MB
jdk-base                                                  1.8.0_231           0f63a97ddc85        11 days ago         953MB
centos-base                                               7.6.1810            b4931fd9ace2        11 days ago         551MB
centos                                                    centos7.6.1810      f1cb7c7d58b7        10 months ago       202MB
lorel/docker-stress-ng                                    latest              1ae56ccafe55        3 years ago         8.1MB
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# docker image push docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx
The push refers to repository [docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx]
bcba843846df: Pushed 
54d99d2f8875: Pushed 
265c695d22e3: Pushed 
89169d87dbe2: Mounted from yinzhengjie/centos-haproxy 
v1.14.2: digest: sha256:5bcaca2d82b6894253d2afee30571221e1132e9a8611f70ca632f4fe8658b6fe size: 1156
[root@docker101.yinzhengjie.org.cn ~]#

[root@docker101.yinzhengjie.org.cn ~]# docker image push docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx

5>.将tomcat镜像推送到harbor服务器端

[root@docker101.yinzhengjie.org.cn ~]# docker image ls
REPOSITORY                                              TAG                 IMAGE ID            CREATED             SIZE
docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx   v1.14.2             1a8b4f68e96a        29 hours ago        449MB
nginx                                                   v0.1-20200201       1a8b4f68e96a        29 hours ago        449MB
registry                                                latest              708bc6af7e5e        9 days ago          25.8MB
tomcat-app01                                            v0.1                bf45c22f2d5b        10 days ago         983MB
tomcat-base                                             8.5.50              9ff79f369094        11 days ago         968MB
jdk-base                                                1.8.0_231           0f63a97ddc85        11 days ago         953MB
centos-base                                             7.6.1810            b4931fd9ace2        11 days ago         551MB
centos                                                  centos7.6.1810      f1cb7c7d58b7        10 months ago       202MB
lorel/docker-stress-ng                                  latest              1ae56ccafe55        3 years ago         8.1MB
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# docker image tag tomcat-app01:v0.1 docker103.yinzhengjie.org.cn/yinzhengjie/tomcat-app01:8.5.50
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# docker image ls
REPOSITORY                                              TAG                 IMAGE ID            CREATED             SIZE
docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx   v1.14.2             1a8b4f68e96a        29 hours ago        449MB
nginx                                                   v0.1-20200201       1a8b4f68e96a        29 hours ago        449MB
registry                                                latest              708bc6af7e5e        9 days ago          25.8MB
tomcat-app01                                            v0.1                bf45c22f2d5b        10 days ago         983MB
docker103.yinzhengjie.org.cn/yinzhengjie/tomcat-app01   8.5.50              bf45c22f2d5b        10 days ago         983MB
tomcat-base                                             8.5.50              9ff79f369094        11 days ago         968MB
jdk-base                                                1.8.0_231           0f63a97ddc85        11 days ago         953MB
centos-base                                             7.6.1810            b4931fd9ace2        11 days ago         551MB
centos                                                  centos7.6.1810      f1cb7c7d58b7        10 months ago       202MB
lorel/docker-stress-ng                                  latest              1ae56ccafe55        3 years ago         8.1MB
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]#

[root@docker101.yinzhengjie.org.cn ~]# docker image tag tomcat-app01:v0.1 docker103.yinzhengjie.org.cn/yinzhengjie/tomcat-app01:8.5.50

[root@docker101.yinzhengjie.org.cn ~]# docker image ls
REPOSITORY                                              TAG                 IMAGE ID            CREATED             SIZE
nginx                                                   v0.1-20200201       1a8b4f68e96a        29 hours ago        449MB
docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx   v1.14.2             1a8b4f68e96a        29 hours ago        449MB
registry                                                latest              708bc6af7e5e        9 days ago          25.8MB
tomcat-app01                                            v0.1                bf45c22f2d5b        10 days ago         983MB
docker103.yinzhengjie.org.cn/yinzhengjie/tomcat-app01   8.5.50              bf45c22f2d5b        10 days ago         983MB
tomcat-base                                             8.5.50              9ff79f369094        11 days ago         968MB
jdk-base                                                1.8.0_231           0f63a97ddc85        11 days ago         953MB
centos-base                                             7.6.1810            b4931fd9ace2        11 days ago         551MB
centos                                                  centos7.6.1810      f1cb7c7d58b7        10 months ago       202MB
lorel/docker-stress-ng                                  latest              1ae56ccafe55        3 years ago         8.1MB
[root@docker101.yinzhengjie.org.cn ~]# 
[root@docker101.yinzhengjie.org.cn ~]# docker image push docker103.yinzhengjie.org.cn/yinzhengjie/tomcat-app01:8.5.50 
The push refers to repository [docker103.yinzhengjie.org.cn/yinzhengjie/tomcat-app01]
5a4703440aa0: Pushed 
6cb4b904056a: Pushed 
8470f758a98b: Pushed 
926483cbcbb4: Pushed 
84bb4f431a8f: Pushed 
22ac492b2c15: Pushed 
fc1a47f2a301: Pushed 
9f0513d2c943: Pushed 
a9a8bd89bd66: Pushed 
0f448859d86e: Mounted from yinzhengjie/centos-haproxy 
89169d87dbe2: Mounted from yinzhengjie/centos-nginx 
8.5.50: digest: sha256:184fb625634163294e0f2fb68c40657176fff69a8bed4b0329c742cab5e7e088 size: 2623
[root@docker101.yinzhengjie.org.cn ~]#

[root@docker101.yinzhengjie.org.cn ~]# docker image push docker103.yinzhengjie.org.cn/yinzhengjie/tomcat-app01:8.5.50

二.安装docker-compose工具

1>.下载新repo到/etc/yum.repos.d/

[root@docker102.yinzhengjie.org.cn ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
--2020-02-02 19:39:24--  http://mirrors.aliyun.com/repo/epel-7.repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 119.167.173.238, 119.167.173.244, 27.221.56.244, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|119.167.173.238|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 664 [application/octet-stream]
Saving to: ‘/etc/yum.repos.d/epel.repo’

100%[============================================================================================================================================================>] 664         --.-K/s   in 0s      

2020-02-02 19:39:24 (1.47 MB/s) - ‘/etc/yum.repos.d/epel.repo’ saved [664/664]

[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]# ll /etc/yum.repos.d/
total 40
-rw-r--r--. 1 root root 1664 Nov 23  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Nov 23  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Nov 23  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Nov 23  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23  2018 CentOS-Vault.repo
-rw-r--r--  1 root root 2640 Jan 23 16:12 docker-ce.repo
-rw-r--r--  1 root root  664 May 11  2018 epel.repo
[root@docker102.yinzhengjie.org.cn ~]#

[root@docker102.yinzhengjie.org.cn ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2>.安装python环境及pip命令

[root@docker102.yinzhengjie.org.cn ~]# yum -y install python-pip
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirrors.neusoft.edu.cn
 * updates: mirror.bit.edu.cn
epel                                                                                                                                                                           | 5.3 kB  00:00:00     
(1/3): epel/x86_64/group_gz                                                                                                                                                    |  90 kB  00:00:00     
(2/3): epel/x86_64/updateinfo                                                                                                                                                  | 1.0 MB  00:00:00     
(3/3): epel/x86_64/primary_db                                                                                                                                                  | 6.9 MB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package python2-pip.noarch 0:8.1.2-10.el7 will be installed
--> Processing Dependency: python-setuptools for package: python2-pip-8.1.2-10.el7.noarch
--> Running transaction check
---> Package python-setuptools.noarch 0:0.9.8-7.el7 will be installed
--> Processing Dependency: python-backports-ssl_match_hostname for package: python-setuptools-0.9.8-7.el7.noarch
--> Running transaction check
---> Package python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 will be installed
--> Processing Dependency: python-ipaddress for package: python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch
--> Processing Dependency: python-backports for package: python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch
--> Running transaction check
---> Package python-backports.x86_64 0:1.0-8.el7 will be installed
---> Package python-ipaddress.noarch 0:1.0.16-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================================================
 Package                                                             Arch                                   Version                                        Repository                            Size
======================================================================================================================================================================================================
Installing:
 python2-pip                                                         noarch                                 8.1.2-10.el7                                   epel                                 1.7 M
Installing for dependencies:
 python-backports                                                    x86_64                                 1.0-8.el7                                      base                                 5.8 k
 python-backports-ssl_match_hostname                                 noarch                                 3.5.0.1-1.el7                                  base                                  13 k
 python-ipaddress                                                    noarch                                 1.0.16-2.el7                                   base                                  34 k
 python-setuptools                                                   noarch                                 0.9.8-7.el7                                    base                                 397 k

Transaction Summary
======================================================================================================================================================================================================
Install  1 Package (+4 Dependent packages)

Total size: 2.1 M
Total download size: 1.7 M
Installed size: 9.4 M
Downloading packages:
python2-pip-8.1.2-10.el7.noarch.rpm                                                                                                                                            | 1.7 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python-backports-1.0-8.el7.x86_64                                                                                                                                                  1/5 
  Installing : python-ipaddress-1.0.16-2.el7.noarch                                                                                                                                               2/5 
  Installing : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch                                                                                                                           3/5 
  Installing : python-setuptools-0.9.8-7.el7.noarch                                                                                                                                               4/5 
  Installing : python2-pip-8.1.2-10.el7.noarch                                                                                                                                                    5/5 
  Verifying  : python-ipaddress-1.0.16-2.el7.noarch                                                                                                                                               1/5 
  Verifying  : python-setuptools-0.9.8-7.el7.noarch                                                                                                                                               2/5 
  Verifying  : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch                                                                                                                           3/5 
  Verifying  : python-backports-1.0-8.el7.x86_64                                                                                                                                                  4/5 
  Verifying  : python2-pip-8.1.2-10.el7.noarch                                                                                                                                                    5/5 

Installed:
  python2-pip.noarch 0:8.1.2-10.el7                                                                                                                                                                   

Dependency Installed:
  python-backports.x86_64 0:1.0-8.el7       python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7       python-ipaddress.noarch 0:1.0.16-2.el7       python-setuptools.noarch 0:0.9.8-7.el7      

Complete!
[root@docker102.yinzhengjie.org.cn ~]#

[root@docker102.yinzhengjie.org.cn ~]# yum -y install python-pip

[root@docker102.yinzhengjie.org.cn ~]# pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 1.1MB/s 
Installing collected packages: pip
  Found existing installation: pip 8.1.2
    Uninstalling pip-8.1.2:
      Successfully uninstalled pip-8.1.2
Successfully installed pip-20.0.2
[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]#

[root@docker102.yinzhengjie.org.cn ~]# pip install --upgrade pip

3>.安装docker-compose工具(ubantu系统只需要执行"apt-get install docker-compose"即可)

[root@docker102.yinzhengjie.org.cn ~]# yum -y install python-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirrors.neusoft.edu.cn
 * updates: mirror.bit.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package python-devel.x86_64 0:2.7.5-86.el7 will be installed
--> Processing Dependency: python(x86-64) = 2.7.5-86.el7 for package: python-devel-2.7.5-86.el7.x86_64
--> Processing Dependency: python2-rpm-macros > 3-30 for package: python-devel-2.7.5-86.el7.x86_64
--> Processing Dependency: python-rpm-macros > 3-30 for package: python-devel-2.7.5-86.el7.x86_64
--> Running transaction check
---> Package python.x86_64 0:2.7.5-76.el7 will be updated
---> Package python.x86_64 0:2.7.5-86.el7 will be an update
--> Processing Dependency: python-libs(x86-64) = 2.7.5-86.el7 for package: python-2.7.5-86.el7.x86_64
---> Package python-rpm-macros.noarch 0:3-32.el7 will be installed
--> Processing Dependency: python-srpm-macros for package: python-rpm-macros-3-32.el7.noarch
---> Package python2-rpm-macros.noarch 0:3-32.el7 will be installed
--> Running transaction check
---> Package python-libs.x86_64 0:2.7.5-76.el7 will be updated
---> Package python-libs.x86_64 0:2.7.5-86.el7 will be an update
---> Package python-srpm-macros.noarch 0:3-32.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================================================
 Package                                                Arch                                       Version                                             Repository                                Size
======================================================================================================================================================================================================
Installing:
 python-devel                                           x86_64                                     2.7.5-86.el7                                        base                                     398 k
Installing for dependencies:
 python-rpm-macros                                      noarch                                     3-32.el7                                            base                                     8.8 k
 python-srpm-macros                                     noarch                                     3-32.el7                                            base                                     8.4 k
 python2-rpm-macros                                     noarch                                     3-32.el7                                            base                                     7.7 k
Updating for dependencies:
 python                                                 x86_64                                     2.7.5-86.el7                                        base                                      95 k
 python-libs                                            x86_64                                     2.7.5-86.el7                                        base                                     5.6 M

Transaction Summary
======================================================================================================================================================================================================
Install  1 Package  (+3 Dependent packages)
Upgrade             ( 2 Dependent packages)

Total download size: 6.2 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/6): python-2.7.5-86.el7.x86_64.rpm                                                                                                                                          |  95 kB  00:00:00     
(2/6): python-srpm-macros-3-32.el7.noarch.rpm                                                                                                                                  | 8.4 kB  00:00:00     
(3/6): python2-rpm-macros-3-32.el7.noarch.rpm                                                                                                                                  | 7.7 kB  00:00:00     
(4/6): python-rpm-macros-3-32.el7.noarch.rpm                                                                                                                                   | 8.8 kB  00:00:00     
(5/6): python-devel-2.7.5-86.el7.x86_64.rpm                                                                                                                                    | 398 kB  00:00:00     
(6/6): python-libs-2.7.5-86.el7.x86_64.rpm                                                                                                                                     | 5.6 MB  00:00:01     
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                 5.1 MB/s | 6.2 MB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : python-libs-2.7.5-86.el7.x86_64                                                                                                                                                    1/8 
  Updating   : python-2.7.5-86.el7.x86_64                                                                                                                                                         2/8 
  Installing : python2-rpm-macros-3-32.el7.noarch                                                                                                                                                 3/8 
  Installing : python-srpm-macros-3-32.el7.noarch                                                                                                                                                 4/8 
  Installing : python-rpm-macros-3-32.el7.noarch                                                                                                                                                  5/8 
  Installing : python-devel-2.7.5-86.el7.x86_64                                                                                                                                                   6/8 
  Cleanup    : python-2.7.5-76.el7.x86_64                                                                                                                                                         7/8 
  Cleanup    : python-libs-2.7.5-76.el7.x86_64                                                                                                                                                    8/8 
  Verifying  : python-libs-2.7.5-86.el7.x86_64                                                                                                                                                    1/8 
  Verifying  : python-devel-2.7.5-86.el7.x86_64                                                                                                                                                   2/8 
  Verifying  : python-2.7.5-86.el7.x86_64                                                                                                                                                         3/8 
  Verifying  : python-srpm-macros-3-32.el7.noarch                                                                                                                                                 4/8 
  Verifying  : python2-rpm-macros-3-32.el7.noarch                                                                                                                                                 5/8 
  Verifying  : python-rpm-macros-3-32.el7.noarch                                                                                                                                                  6/8 
  Verifying  : python-2.7.5-76.el7.x86_64                                                                                                                                                         7/8 
  Verifying  : python-libs-2.7.5-76.el7.x86_64                                                                                                                                                    8/8 

Installed:
  python-devel.x86_64 0:2.7.5-86.el7                                                                                                                                                                  

Dependency Installed:
  python-rpm-macros.noarch 0:3-32.el7                              python-srpm-macros.noarch 0:3-32.el7                              python2-rpm-macros.noarch 0:3-32.el7                             

Dependency Updated:
  python.x86_64 0:2.7.5-86.el7                                                                    python-libs.x86_64 0:2.7.5-86.el7                                                                   

Complete!
[root@docker102.yinzhengjie.org.cn ~]#

[root@docker102.yinzhengjie.org.cn ~]# yum -y install python-devel          #如果这个依赖包不安装可能在安装docker compose会失败哟~

[root@docker102.yinzhengjie.org.cn ~]# pip install docker-compose
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. 
More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-supportCollecting docker-compose
  Using cached docker_compose-1.25.3-py2.py3-none-any.whl (136 kB)
Requirement already satisfied: backports.shutil-get-terminal-size==1.0.0; python_version < "3.3" in /usr/lib/python2.7/site-packages (from docker-compose) (1.0.0)
Requirement already satisfied: six<2,>=1.3.0 in /usr/lib/python2.7/site-packages (from docker-compose) (1.14.0)
Requirement already satisfied: PyYAML<6,>=3.10 in /usr/lib64/python2.7/site-packages (from docker-compose) (5.3)
Requirement already satisfied: docker[ssh]<5,>=3.7.0 in /usr/lib/python2.7/site-packages (from docker-compose) (4.1.0)
Requirement already satisfied: dockerpty<1,>=0.4.1 in /usr/lib/python2.7/site-packages (from docker-compose) (0.4.1)
Requirement already satisfied: jsonschema<4,>=2.5.1 in /usr/lib/python2.7/site-packages (from docker-compose) (3.2.0)
Requirement already satisfied: requests<3,>=2.20.0 in /usr/lib/python2.7/site-packages (from docker-compose) (2.22.0)
Requirement already satisfied: websocket-client<1,>=0.32.0 in /usr/lib/python2.7/site-packages (from docker-compose) (0.57.0)
Requirement already satisfied: cached-property<2,>=1.2.0 in /usr/lib/python2.7/site-packages (from docker-compose) (1.5.1)
Requirement already satisfied: ipaddress<2,>=1.0.16; python_version < "3.3" in /usr/lib/python2.7/site-packages (from docker-compose) (1.0.16)
Requirement already satisfied: docopt<1,>=0.6.1 in /usr/lib/python2.7/site-packages (from docker-compose) (0.6.2)
Collecting subprocess32<4,>=3.5.4; python_version < "3.2"
  Using cached subprocess32-3.5.4.tar.gz (97 kB)
Requirement already satisfied: enum34<2,>=1.0.4; python_version < "3.4" in /usr/lib/python2.7/site-packages (from docker-compose) (1.1.6)
Collecting texttable<2,>=0.9.0
  Using cached texttable-1.6.2-py2.py3-none-any.whl (10 kB)
Requirement already satisfied: backports.ssl-match-hostname<4,>=3.5; python_version < "3.5" in /usr/lib/python2.7/site-packages (from docker-compose) (3.5.0.1)
Requirement already satisfied: paramiko>=2.4.2; extra == "ssh" in /usr/lib/python2.7/site-packages (from docker[ssh]<5,>=3.7.0->docker-compose) (2.7.1)
Requirement already satisfied: setuptools in /usr/lib/python2.7/site-packages (from jsonschema<4,>=2.5.1->docker-compose) (0.9.8)
Requirement already satisfied: pyrsistent>=0.14.0 in /usr/lib64/python2.7/site-packages (from jsonschema<4,>=2.5.1->docker-compose) (0.15.7)
Requirement already satisfied: attrs>=17.4.0 in /usr/lib/python2.7/site-packages (from jsonschema<4,>=2.5.1->docker-compose) (19.3.0)
Requirement already satisfied: importlib-metadata; python_version < "3.8" in /usr/lib/python2.7/site-packages (from jsonschema<4,>=2.5.1->docker-compose) (1.5.0)
Requirement already satisfied: functools32; python_version < "3" in /usr/lib/python2.7/site-packages (from jsonschema<4,>=2.5.1->docker-compose) (3.2.3.post2)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/lib/python2.7/site-packages (from requests<3,>=2.20.0->docker-compose) (3.0.4)
Requirement already satisfied: idna<2.9,>=2.5 in /usr/lib/python2.7/site-packages (from requests<3,>=2.20.0->docker-compose) (2.8)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/lib/python2.7/site-packages (from requests<3,>=2.20.0->docker-compose) (1.25.8)
Requirement already satisfied: certifi>=2017.4.17 in /usr/lib/python2.7/site-packages (from requests<3,>=2.20.0->docker-compose) (2019.11.28)
Requirement already satisfied: bcrypt>=3.1.3 in /usr/lib64/python2.7/site-packages (from paramiko>=2.4.2; extra == "ssh"->docker[ssh]<5,>=3.7.0->docker-compose) (3.1.7)
Requirement already satisfied: pynacl>=1.0.1 in /usr/lib64/python2.7/site-packages (from paramiko>=2.4.2; extra == "ssh"->docker[ssh]<5,>=3.7.0->docker-compose) (1.3.0)
Requirement already satisfied: cryptography>=2.5 in /usr/lib64/python2.7/site-packages (from paramiko>=2.4.2; extra == "ssh"->docker[ssh]<5,>=3.7.0->docker-compose) (2.8)
Requirement already satisfied: pathlib2; python_version < "3" in /usr/lib/python2.7/site-packages (from importlib-metadata; python_version < "3.8"->jsonschema<4,>=2.5.1->docker-compose) (2.3.5)
Requirement already satisfied: contextlib2; python_version < "3" in /usr/lib/python2.7/site-packages (from importlib-metadata; python_version < "3.8"->jsonschema<4,>=2.5.1->docker-compose) (0.6.0.po
st1)Requirement already satisfied: zipp>=0.5 in /usr/lib/python2.7/site-packages (from importlib-metadata; python_version < "3.8"->jsonschema<4,>=2.5.1->docker-compose) (1.1.0)
Requirement already satisfied: configparser>=3.5; python_version < "3" in /usr/lib/python2.7/site-packages (from importlib-metadata; python_version < "3.8"->jsonschema<4,>=2.5.1->docker-compose) (4.
0.2)Requirement already satisfied: cffi>=1.1 in /usr/lib64/python2.7/site-packages (from bcrypt>=3.1.3->paramiko>=2.4.2; extra == "ssh"->docker[ssh]<5,>=3.7.0->docker-compose) (1.13.2)
Requirement already satisfied: scandir; python_version < "3.5" in /usr/lib64/python2.7/site-packages (from pathlib2; python_version < "3"->importlib-metadata; python_version < "3.8"->jsonschema<4,>=
2.5.1->docker-compose) (1.10.0)Requirement already satisfied: pycparser in /usr/lib/python2.7/site-packages (from cffi>=1.1->bcrypt>=3.1.3->paramiko>=2.4.2; extra == "ssh"->docker[ssh]<5,>=3.7.0->docker-compose) (2.19)
Installing collected packages: subprocess32, texttable, docker-compose
    Running setup.py install for subprocess32 ... done
Successfully installed docker-compose-1.25.3 subprocess32-3.5.4 texttable-1.6.2
[root@docker102.yinzhengjie.org.cn ~]#

[root@docker102.yinzhengjie.org.cn ~]# pip install docker-compose

4>.验证docker-compose版本

[root@docker102.yinzhengjie.org.cn ~]# docker-compose version
docker-compose version 1.25.3, build unknown
docker-py version: 4.1.0
CPython version: 2.7.5
OpenSSL version: OpenSSL 1.0.2k-fips  26 Jan 2017
[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]#

5>.查看docker-compose的帮助信息

[root@docker102.yinzhengjie.org.cn ~]# docker-compose --help
Define and run multi-container applications with Docker.

Usage:
  docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help

Options:
  -f, --file FILE             Specify an alternate compose file
                              (default: docker-compose.yml)
  -p, --project-name NAME     Specify an alternate project name
                              (default: directory name)
  --verbose                   Show more output
  --log-level LEVEL           Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
  --no-ansi                   Do not print ANSI control characters
  -v, --version               Print version and exit
  -H, --host HOST             Daemon socket to connect to

  --tls                       Use TLS; implied by --tlsverify
  --tlscacert CA_PATH         Trust certs signed only by this CA
  --tlscert CLIENT_CERT_PATH  Path to TLS certificate file
  --tlskey TLS_KEY_PATH       Path to TLS key file
  --tlsverify                 Use TLS and verify the remote
  --skip-hostname-check       Don't check the daemon's hostname against the
                              name specified in the client certificate
  --project-directory PATH    Specify an alternate working directory
                              (default: the path of the Compose file)
  --compatibility             If set, Compose will attempt to convert keys
                              in v3 files to their non-Swarm equivalent
  --env-file PATH             Specify an alternate environment file

Commands:
  build              Build or rebuild services
  config             Validate and view the Compose file
  create             Create services
  down               Stop and remove containers, networks, images, and volumes
  events             Receive real time events from containers
  exec               Execute a command in a running container
  help               Get help on a command
  images             List images
  kill               Kill containers
  logs               View output from containers
  pause              Pause services
  port               Print the public port for a port binding
  ps                 List containers
  pull               Pull service images
  push               Push service images
  restart            Restart services
  rm                 Remove stopped containers
  run                Run a one-off command
  scale              Set number of containers for a service
  start              Start services
  stop               Stop services
  top                Display the running processes
  unpause            Unpause services
  up                 Create and start containers
  version            Show the Docker-Compose version information
[root@docker102.yinzhengjie.org.cn ~]#

[root@docker102.yinzhengjie.org.cn ~]# docker-compose --help

三.使用docker-compose工具

1>.操作平台及试验架构说明

  使用docker-compose工具自动生成三个容器应用,即harpoxy,nginx-web,tomcat-app01。  

  harpory应用功能:  
    负载均衡服务器,主要将访问80端口的转发给后台的nginx-web应用,暴漏8888端口为harpoxy的状态页。  

  nginx-web应用功能:  
    主要讲访问"/app01"的path调度到后端的tomcat-app01应用服务上。  

  tomcat-app01:  
    主要提供tomcat应用的访问页面。  

  以上三种镜像我在之前的笔记也分享过,制作起来也非常简单,可参考我第一部分提供的连接自行制作即可。

2>.为了实验方便,建议找一台干净的宿主机(只需要安装docker环境即可) ,或者将该节点的所有容器和镜像都删除掉

[root@docker102.yinzhengjie.org.cn ~]# docker container rm -f `docker container ps -a -q`
70da6a2cad6b
[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               latest              9b188f5fb1e6        4 weeks ago         98.2MB
centos              centos7.6.1810      f1cb7c7d58b7        10 months ago       202MB
[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]# docker image rm -f 9b188f5fb1e6 f1cb7c7d58b7
Untagged: redis:latest
Untagged: redis@sha256:90d44d431229683cadd75274e6fcb22c3e0396d149a8f8b7da9925021ee75c30
Deleted: sha256:9b188f5fb1e6e1c7b10045585cb386892b2b4e1d31d62e3688c6fa8bf9fd32b5
Deleted: sha256:fe7afb618c11b8be098a10564a9a1682f83915bfdbaaa5af48791950d418b2d5
Deleted: sha256:3a284ce371b3431ba30071057478e2db8fc096232b1a84f092c4df9e06a4a3e4
Deleted: sha256:4396548b331d1b748c8ba1542f8da54e0a8b84102d8205440aac61e3941bdf71
Deleted: sha256:c80de70938af062d3c273f9925641ec672fe182a796bb4a096a37963c92e071a
Deleted: sha256:e807dfe0532b9dae274911841bab81588e9e34591a5b809b8da39471fb75fdbd
Deleted: sha256:556c5fb0d91b726083a8ce42e2faaed99f11bc68d3f70e2c7bbce87e7e0b3e10
Untagged: centos:centos7.6.1810
Untagged: centos@sha256:62d9e1c2daa91166139b51577fe4f4f6b4cc41a3a2c7fc36bd895e2a17a3e4e6
Deleted: sha256:f1cb7c7d58b73eac859c395882eec49d50651244e342cd6c68a5c7809785f427
Deleted: sha256:89169d87dbe2b72ba42bfbb3579c957322baca28e03a1e558076542a1c1b2b4a
[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]#

3>.编写docke-compose的配置文件

[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]# cd /yinzhengjie/data/
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# 
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# ll
total 4
-rw-r--r-- 1 root root 984 Feb  3 00:15 docker-compose.yml
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# 
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# vim docker-compose.yml 
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# 
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# cat docker-compose.yml 
haproxy:
    image: docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy:v1.8.20
    container_name: myHaproxy
    expose:
        - 80
        - 8888
    volumes:
        - /yinzhengjie/softwares/dockerfile/web/haproxy/haproxy.cfg:/etc/haproxy/haproxy.cfg
    ports:
        - "80:80"
        - "8888:8888"
    links:
        - nginx-web


nginx-web:
    image: docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx:v1.14.2
    container_name: myNginx
    ports:
        - "8080:80"
        - "443:443"
    volumes:
        - /yinzhengjie/softwares/dockerfile/web/nginx/nginx.conf:/etc/nginx/nginx.conf
        - /yinzhengjie/softwares/dockerfile/web/nginx/log:/var/log/nginx/
        #- /yinzhengjie/softwares/dockerfile/web/nginx/webpage:/usr/share/nginx/html/webpage
    links:
        - tomcat-app01

tomcat-app01:
    image: docker103.yinzhengjie.org.cn/yinzhengjie/tomcat-app01:8.5.50
    container_name: myTomcat
    expose:
        - 8080
    ports:
        - "8081:8080"
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# 
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]#

4>.准备haproxy和nginx的配置文件

[root@docker102.yinzhengjie.org.cn ~]# cat /yinzhengjie/softwares/dockerfile/web/haproxy/haproxy.cfg
global
    maxconn 100000
    chroot /yinzhengjie/softwares/haproxy
    stats socket /yinzhengjie/softwares/haproxy/haproxy.sock mode 600 level admin
    uid 99
    gid 99
    daemon
    pidfile /yinzhengjie/softwares/haproxy/run/haproxy.pid

defaults
    option http-keep-alive
    option  forwardfor
    option redispatch
    option abortonclose
    maxconn 100000
    mode http
    timeout connect 300000ms
    timeout client  300000ms
    timeout server  300000ms

listen status_page
    bind 0.0.0.0:8888
    stats enable
    stats uri /haproxy-status
    stats auth    admin:yinzhengjie
    stats realm "Welcome to the haproxy load balancer status page of YinZhengjie"

listen WEB_PORT_80
    bind 0.0.0.0:80
    mode http
    server web01 myNginx:80 check inter 3000 fall 3 rise 5
[root@docker102.yinzhengjie.org.cn ~]#

[root@docker102.yinzhengjie.org.cn ~]# cat /yinzhengjie/softwares/dockerfile/web/haproxy/haproxy.cfg

[root@docker102.yinzhengjie.org.cn ~]# cat /yinzhengjie/softwares/dockerfile/web/nginx/nginx.conf 
user nginx;

worker_processes auto;

error_log /var/log/nginx/error.log;

pid /run/nginx.pid;

daemon off;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format my_access_json '{"@timestamp":"$time_iso8601",' 
                              '"host":"$server_addr",' 
                              '"clientip":"$remote_addr",' 
                  '"size":$body_bytes_sent,' 
                             '"responsetime":$request_time,' 
                             '"upstreamtime":"$upstream_response_time",' 
                             '"upstreamhost":"$upstream_addr",' 
                              '"http_host":"$host",' 
                            '"uri":"$uri",' 
                             '"domain":"$host",' 
                             '"xff":"$http_x_forwarded_for",' 
                  '"referer":"$http_referer",' 
                             '"tcp_xff":"$proxy_protocol_addr",' 
                             '"http_user_agent":"$http_user_agent",' 
                             '"status":"$status"}';

    access_log /var/log/nginx/access_json.log my_access_json;

    sendfile            on;
    keepalive_timeout   65;
    include       mime.types;
    default_type  text/html;
    charset utf-8;

    upstream tomcat {
        server myTomcat:8080;
    }

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        include /etc/nginx/default.d/*.conf;

        location / {   
    }

    location /app01 {
        proxy_pass http://tomcat;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;    
    }

        error_page 404 /404.html;             
        location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
}
[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]#

[root@docker102.yinzhengjie.org.cn ~]# cat /yinzhengjie/softwares/dockerfile/web/nginx/nginx.conf

5>.使用docker-compose启动容器

[root@docker102.yinzhengjie.org.cn ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]# 
[root@docker102.yinzhengjie.org.cn ~]# cd /yinzhengjie/data/
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# 
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# ll
total 4
-rw-r--r-- 1 root root 984 Feb  3 00:16 docker-compose.yml
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# 
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# docker-compose up -d
Pulling tomcat-app01 (docker103.yinzhengjie.org.cn/yinzhengjie/tomcat-app01:8.5.50)...
8.5.50: Pulling from yinzhengjie/tomcat-app01
ac9208207ada: Pull complete
1a93113d354a: Pull complete
f108858f6f61: Pull complete
9a2b3813e78f: Pull complete
22846f1b35ad: Pull complete
4974dcf47ca5: Pull complete
cccf3b0fa894: Pull complete
f521958217e9: Pull complete
6a72405885f1: Pull complete
3459f1899556: Pull complete
67b34fd0aea6: Pull complete
Digest: sha256:184fb625634163294e0f2fb68c40657176fff69a8bed4b0329c742cab5e7e088
Status: Downloaded newer image for docker103.yinzhengjie.org.cn/yinzhengjie/tomcat-app01:8.5.50
Pulling nginx-web (docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx:v1.14.2)...
v1.14.2: Pulling from yinzhengjie/centos-nginx
ac9208207ada: Already exists
e7b74095699d: Pull complete
36fb77d3c4ec: Pull complete
1d762a9127ad: Pull complete
Digest: sha256:5bcaca2d82b6894253d2afee30571221e1132e9a8611f70ca632f4fe8658b6fe
Status: Downloaded newer image for docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx:v1.14.2
Pulling haproxy (docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy:v1.8.20)...
v1.8.20: Pulling from yinzhengjie/centos-haproxy
ac9208207ada: Already exists
1a93113d354a: Already exists
944626ba00dc: Pull complete
efac8e5b786f: Pull complete
44a575eed86d: Pull complete
5068d27f2e99: Pull complete
Digest: sha256:25501644249322b2b5fadf473b3aad5dafe90b5a0ac2c01e7fd815c7c2c66433
Status: Downloaded newer image for docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy:v1.8.20
Creating myTomcat ... done
Creating myNginx  ... done
Creating myHaproxy ... done
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]#

6>.验证镜像是否下载及容器是否启动成功

[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# 
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# docker container ls
CONTAINER ID        IMAGE                                                             COMMAND                  CREATED             STATUS              PORTS                                        NAMES
d57ee2d3ba5e        docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy:v1.8.20   "/usr/bin/run_haprox…"   4 minutes ago       Up 4 minutes        0.0.0.0:80->80/tcp, 0.0.0.0:8888->8888/tcp   myHaproxy
064e1c3eafb9        docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx:v1.14.2     "nginx"                  4 minutes ago       Up 4 minutes        0.0.0.0:443->443/tcp, 0.0.0.0:8080->80/tcp   myNginx
46b233a84aa5        docker103.yinzhengjie.org.cn/yinzhengjie/tomcat-app01:8.5.50      "/yinzhengjie/softwa…"   4 minutes ago       Up 4 minutes        8443/tcp, 0.0.0.0:8081->8080/tcp             myTomcat
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# 
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]# docker image ls
REPOSITORY                                                TAG                 IMAGE ID            CREATED             SIZE
docker103.yinzhengjie.org.cn/yinzhengjie/centos-haproxy   v1.8.20             a4825da6c2fe        4 hours ago         606MB
docker103.yinzhengjie.org.cn/yinzhengjie/centos-nginx     v1.14.2             1a8b4f68e96a        33 hours ago        449MB
docker103.yinzhengjie.org.cn/yinzhengjie/tomcat-app01     8.5.50              bf45c22f2d5b        10 days ago         983MB
[root@docker102.yinzhengjie.org.cn /yinzhengjie/data]#

7>.验证服务是否生效

8>.访问haproxy的状态页

  浏览器访问"http://docker102.yinzhengjie.org.cn:8888/haproxy-status"会弹出如上图所示的对话框。

  输入咱们自定义的用户名和密码登录成功后,就可以看到haproxy状态页面,如下图所示。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
Ubuntu Linux Docker
docker swarm快速入门篇
关于Docker Swarm集群部署和验证高可用性的快速入门教程。
48 2
|
4月前
|
关系型数据库 分布式数据库 PolarDB
PolarDB产品使用问题之如何基于Docker进行PolarDB-X单机模拟部署
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
PolarDB产品使用问题之如何基于Docker进行PolarDB-X单机模拟部署
|
3月前
|
数据采集 存储 Docker
Docker快速入门指南
Docker快速入门指南
51 1
|
3月前
|
Ubuntu Shell Linux
docker快速入门教程
docker快速入门教程
82 0
|
3月前
|
消息中间件 测试技术 RocketMQ
docker部署RockerMQ单机测试环境
docker部署RockerMQ单机测试环境
|
4月前
|
消息中间件 数据可视化 RocketMQ
【RocketMQ系列二】通过docker部署单机RocketMQ
【RocketMQ系列二】通过docker部署单机RocketMQ
1200 4
|
5月前
|
Linux 开发工具 Docker
【Docker】快速入门手册
【Docker】快速入门手册
124 1
|
5月前
|
Java Linux Shell
docker 打包 springboot 项目快速入门
docker 打包 springboot 项目快速入门
64 0
|
11月前
|
Kubernetes API Docker
Mac docker-desktop 安装单机版k8s
Mac docker-desktop 安装单机版k8s
587 0
|
6月前
|
消息中间件 存储 监控
Docker安装部署RabbitMQ(单机版)
Docker安装部署RabbitMQ(单机版)
364 1