一、docker 容器化部署企业级应用

1.1使用容器化部署企业级应用必要性

1.有利于快速实现企业级应用部署

2.有利于实现企业级应用恢复

1.2Docker 参考资料

官方网站 https://hub.docker.com/

Docker容器第三课:企业级应用部署-实战_mysql

二、docker安装部署

系统环境:CentOS7

2.1安装前准备工作

查看内核版本是否大于3.10

[jack@TEST ~]# uname -r
3.10.0-1160.102.1.el7.x86_64

查看版本系统

[jack@TEST ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

2.2安装docker 容器

关闭selinux

安装依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2 bash-completion

配置阿里镜像源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#清除缓存
yum clean all
yum makecache fast

安装docker

yum install docker-ce docker-ce-cli containerd.io

Docker容器第三课:企业级应用部署-实战_nginx_02

启动docker

systemctl start docker
systemctl enable docker

查看docker版本

docker version

Docker容器第三课:企业级应用部署-实战_mysql_03

运行hello-world 测试

docker run hello-world

如果本地没有镜像则自己拉取线上镜像并运行

Docker容器第三课:企业级应用部署-实战_mysql_04

查看所有镜像源

docker images

Docker容器第三课:企业级应用部署-实战_应用部署_05

设置阿里镜像源 编辑/etc/docker/daemon.json

阿里云镜像加速可以进

vi /etc/docker/daemon.json  
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
wq
systemctl restart docker 重启服务生效

Docker容器第三课:企业级应用部署-实战_应用部署_06

注:可以阿里云镜像加速器地址中添加源地址

Docker容器第三课:企业级应用部署-实战_docker_07

开启内核转发-重要

vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p

Docker容器第三课:企业级应用部署-实战_mysql_08


2.3daemon.json 详细配置

vim /etc/docker/daemon.json
 
{
	"data-root": "/data/docker",
    "exec-root": "/var/run/docker",
    "bridge": "none",
    "iptables": false,
    "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:4243"],
    
    "labels": [
       "AlidockerMod=true"
    ],
    
    "vfsconfig": "/etc/sysconfig/docker.vfsconfig",
    
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "10"
    },
    "insecure-registries" : ["aaa.com","bbb.com"],
    "bip": "169.254.123.1/24",
    "oom-score-adjust": -1000,
    "registry-mirrors": ["https://pqbap4ya.mirror.aliyuncs.com"],
    "storage-driver": "overlay2",
    "storage-opts":["overlay2.override_kernel_check=true"],
    "live-restore": true
}
systemctl daemon-reload && systemctl restart docker
    #守护进程配置更改后,需要重启。

"data-root": "/data/docker"

指定 Docker 存储所有运行时数据的根目录,包括镜像、容器、卷和网络等。默认情况下,这个目录位于 /var/lib/docker

 "exec-root": "/var/run/docker"

定义 Docker 执行状态文件的存储路径,如运行中容器的网络配置。默认情况下,它通常位于 /var/run/docker

"bridge": "none"

告诉 Docker 不要自动创建默认的网桥接口 docker0。这通常用于自定义网络或在不需要 Docker 管理网络的情况下。

"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:4243"]

置 Docker 守护进程监听的接口和端口,允许通过 Unix 套接字和 TCP 端口 4243 进行通信。0.0.0.0:4243 表示接受来自任何 IP 地址的连接

"labels": ["AlidockerMod=true"]


为 Docker 守护进程添加标签,可以用来标识守护进程或进行过滤

"exec-opts": ["native.cgroupdriver=systemd"]

指定 Docker 使用 systemd 作为其 cgroup 驱动程序。cgroup (Control groups) 是 Linux 提供的一个特性,用于限制、记录和隔离进程组的资源使用(如 CPU、内存等)。使用 systemd 作为 cgroup 驱动程序有助于集成 Docker 和使用 systemd 的系统组件

"log-driver": "json-file"

将 Docker 容器的日志记录驱动程序设置为 json-file,这意味着容器的日志将以 JSON 格式写入文件。这是 Docker 的默认日志驱动程序

"log-opts": { "max-size": "100m", "max-file": "10" }

设置容器日志文件的轮转策略。"max-size": "100m" 指每个日志文件的最大大小为 100MB,达到该大小后日志文件会轮转。"max-file": "10" 指最多保留 10 个轮转后的日志文件

"insecure-registries"

列出了 Docker 可以通过 HTTP 而非 HTTPS 连接的不安全镜像仓库地址。在这个例子中,给出了几个私有仓库的地址,Docker 将不会验证这些仓库的 SSL 证书。如果配置为0.0.0.0/0,信任所有地址的所有私有仓库

"bip": "169.254.123.1/24"

指定 Docker 默认桥接网络 docker0 的 IP 地址和网络掩码。这个网络用于容器之间和宿主机之间的通信。

"oom-score-adjust": -1000

为 Docker 守护进程设置 OOM(内存耗尽)得分调整值。数值 -1000 表示 Docker 守护进程在内存耗尽时应该最后被杀死,以保护它的运行稳定

"registry-mirrors": ["https://pqbap4ya.mirror.aliyuncs.com"]

设置 Docker 镜像拉取时使用的镜像仓库加速地址。这对于位于中国等地区的用户来说,可以提供更快的镜像下载速度

"storage-driver": "overlay2"

指定 Docker 使用 overlay2 存储驱动,这是推荐的存储驱动,用于管理容器和镜像的分层文件系统。

"storage-opts":["overlay2.override_kernel_check=true"]:提供额外的存储驱动选项。在这里,它允许 overlay2 存储驱动忽略内核版本检查,这可能对于在不完全支持 overlay2 的旧内核版本上运行 Docker 是有用的

"live-restore": true

启用“实时恢复”功能,允许 Docker 守护进程在更新或重启时不终止运行中的容器。这有助于减少服务中断并提高系统的可用性



三、使用docker部署Nginx部署

3.1获取nginx参考资料

访问官网-选择官方镜像

Docker容器第三课:企业级应用部署-实战_应用部署_09

查看对应镜像tags 信息  及 dockerfile 信息

Docker容器第三课:企业级应用部署-实战_nginx_10

3.2运行Nginx应用容器

docker search nginx  #查看镜像
docker run -id --name nginx-1 -p 80:80 -v /opt/nginx-1:/usr/share/nginx/html:ro nginx
#解释
--name nginx-1 定义容器名
-p 80:80 映射容器端口(后)至宿主机端口(前)
-v /opt/nginx-1:/usr/share/nginx/html:ro 挂在宿主机目录至容器目录并给与只读权限
nginx 最后为对应镜像名

Docker容器第三课:企业级应用部署-实战_mysql_11

docker ps 查看容器是否已正常运行

Docker容器第三课:企业级应用部署-实战_docker_12

查询容器内nginx的ip地址  根据容器ID进行查询

[root@TEST nginx-1]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
228711cc16d2   nginx     "/docker-entrypoint.…"   7 minutes ago   Up 7 minutes   80/tcp    nginx-1
[root@TEST nginx-1]# docker inspect 228711cc16d2 |grep  "IPAddress"
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",

Docker容器第三课:企业级应用部署-实战_docker_13

curl http://172.17.0.2  验证

Docker容器第三课:企业级应用部署-实战_tomcat_14

报403错误,原因是对应html 文件夹中是空没有对应页面文件,写入测试文件

echo "nginx is working" > /opt/nginx-1/index.html
cat /opt/nginx-1/index.html
curl http://172.17.0.2

Docker容器第三课:企业级应用部署-实战_tomcat_15

宿主机地址验证 打开网页验证即可  宿主机为192.168.0.202 防火墙需开启对应端口

Docker容器第三课:企业级应用部署-实战_应用部署_16

3.3最后nginx容器启动的方式

挂在两个目录,一个html,一个config  

#创建目录及文件
mkdir -p /opt/nginx-1/html    #目录会自动创建
#可临时运行一个nginx容器拷贝容器中的nginx.confwe文件至宿主机目录以便修改,过程略
docker cp nginx-1:/etc/nginx/nginx.conf /opt/nginx-1/nginx.conf

#启动nginx容器
docker run -id \   #后台启动
--name nginx-1 \   #容器名
-p 80:80 \         #端口映射
-v /opt/nginx-1/html:/usr/share/nginx/html:ro \   #html文件
-v /opt/nginx-1/nginx.conf:/etc/nginx/nginx.conf:ro \     #conf文件
nginx    #镜像名

也可将nginx日志目录进行挂载,方便后期查看

Docker容器第三课:企业级应用部署-实战_tomcat_17

3.4修改nginx 配置文件

验证修改配置文件后容器是否生效

worker_processes  auto   目前为4个进程

Docker容器第三课:企业级应用部署-实战_nginx_18

user  nginx;
#worker_processes  auto;   
worker_processes  2; #修改为2
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

Docker容器第三课:企业级应用部署-实战_应用部署_19

Docker容器第三课:企业级应用部署-实战_mysql_20




四、使用docker部署Tomcat部署

4.1获取Tomcat参考资料

Docker容器第三课:企业级应用部署-实战_应用部署_21

Docker容器第三课:企业级应用部署-实战_tomcat_22

Docker容器第三课:企业级应用部署-实战_nginx_23

4.2运行Tomcat应用容器

部署jdk 部署tomcat  修改环境变量

下载镜像

docker pull tomcat:9.0

运行容器

docker run -id -p 8080:8080 --name mytomcat9.0 \
-v /opt/tomcat-server:/usr/local/tomcat/webapps/ROOT tomcat:9.0 
#挂在目录/opt/tomcat-server至容器/usr/local/tomcat/webapps/ROOT中
#其中ROOT自动创建用户存放web页面

容器启动成功

Docker容器第三课:企业级应用部署-实战_mysql_24

查看宿主机和容器中的目录有无创建成功

Docker容器第三课:企业级应用部署-实战_docker_25

写入一个页面进行测试,默认无页面提示404

Docker容器第三课:企业级应用部署-实战_应用部署_26

echo "tomcat running" > /opt/tomcat-server/index.html

Docker容器第三课:企业级应用部署-实战_docker_27

最后访问web页面验证

Docker容器第三课:企业级应用部署-实战_应用部署_28

五、使用docker部署Mysql部署

5.1获取Tomcat参考资料

Docker容器第三课:企业级应用部署-实战_nginx_29

5.2部署单节点mysql

Docker容器第三课:企业级应用部署-实战_mysql_30

需要挂在log目录,方便查看mysql日志文件

需要挂在数据目录,方便迁移与备份

需要挂在conf目录,mysql配置文件目录

docker run -id --name mysql.5.7 -p 3306:3306 \
-v /opt/mysql/log:/var/log/mysql \
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=password \    设置mysql密码
mysql:5.7

Docker容器第三课:企业级应用部署-实战_mysql_31

数据文件保存路径查看 /opt/mysql/data  

Docker容器第三课:企业级应用部署-实战_mysql_32

通过容器内客户端连接mysql

docker exec -it mysql.5.7 mysql -uroot -ppassword

Docker容器第三课:企业级应用部署-实战_nginx_33

通过宿主机客户端进行访问测试

yum -y install mariadb   #安装客户端
 docker inspect b76fbf8a3fa1 |grep  "IPAddress"   #找到mysql ip

Docker容器第三课:企业级应用部署-实战_nginx_34

mysql -h 192.168.0.202 -uroot -ppassword -P 3306

Docker容器第三课:企业级应用部署-实战_应用部署_35

5.3 部署主从复制集群mysql

5.3.1mysql主节点部署

docker run -id -p 3307:3306 \
--name mysql-master \
-v /opt/mysql-master/log:/var/log/mysql \
-v /opt/mysql-master/data:/var/lib/mysql \
-v /opt/mysql-master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=password \
mysql:5.7

Docker容器第三课:企业级应用部署-实战_nginx_36

mysql主节点配置

编辑配置文件

vim /opt/mysql-master/conf/my.cnf
cat /opt/mysql-master/conf/my.cnf
[client]
default-character-set=utf8
[mysq1]
default-character-set=utf8

[mysq1d]
init_connect='SET collation_connection = utf8_unicode_ci"
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

server_id=1
1og-bin=mysql-bin    #开始日志
read-only=0
bin1og-do-db=kubemsb_test   #同步数据库名

replicate-ignore-db=mysq
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
:wq

5.3.2mysql从节点部署

docker run -id -p 3308:3306 \
--name mysql-slave \
-v /opt/mysql-slave/log:/var/log/mysql \
-v /opt/mysql-slave/data:/var/lib/mysql \
-v /opt/mysql-slave/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=password \
--link mysql-master:mysql-master \   #从节点连接主节点 映射host别名
mysql:5.7

Docker容器第三课:企业级应用部署-实战_docker_37

mysql从节点配置

编辑配置文件

vim /opt/mysql-slave/conf/my.cnf
cat /opt/mysql-slave/conf/my.cnf
[client]
default-character-set=utf8
[mysq1]
default-character-set=utf8

[mysq1d]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

server_id=2     #修改为2
1og-bin=mysql-bin    
read-only=0
bin1og-do-db=kubemsb_test   #保持与主节点一致

replicate-ignore-db=mysq
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
:wq


5.3.3主从节点配置

master节点配置

进入master数据库授权

mysql -h 192.168.0.202 -uroot -ppassword -P 3307
grant replication slave on *.* to 'backup'@'%' identified by 'password';
flush privileges;

重启master节点
docker restart mysql-master

#解释
slave on *.* to 'backup'@'%'
#授权给所有库,所有主机,可指定其中需要同步的数据库
identified by 'password'
#同步认证密码
flush privileges
#刷新授权表


Docker容器第三课:企业级应用部署-实战_应用部署_38

需要断点位置信息

show master status\G

Docker容器第三课:企业级应用部署-实战_docker_39

slave节点配置

docker restart mysql-slave
mysql -h 192.168.0.202 -uroot -ppassword -P3308

MySQL [(none)]> change master to
    -> master_host='mysql-master',
    -> master_user='backup',
    -> master_password='password',
    -> master_log_file='mysql-bin.000001',
    -> master_log_pos=154,
    -> master_port=3306;

Docker容器第三课:企业级应用部署-实战_nginx_40

启动从服务器查看状态

start slave;
show master status\G

Docker容器第三课:企业级应用部署-实战_mysql_41


5.3.4验证mysql集群

在master数据库中添加数据库验证slave数据库中是否同步

Docker容器第三课:企业级应用部署-实战_nginx_42

六、使用docker部署Oralce部署

6.1获取oracle 参考资料

Docker容器第三课:企业级应用部署-实战_应用部署_43

Docker容器第三课:企业级应用部署-实战_应用部署_44

6.2运行oracle容器

我们下载下图中的oracle镜像,该镜像为其他作者制作的镜像非官方源镜像

Docker容器第三课:企业级应用部署-实战_docker_45

下载镜像并运行 注意cpu和内存不能给的过于小  2核4G以上

docker pull oracleinanutshell/oracle-xe-11g

docker run -h oracle --name oracle -d -p 49160:22 -p 49161:1521 -p 49162:8080 oracleinanutshell/oracle-xe-11g

#说明
-h 设置容器主机名
49160 ssh端口
49161 sqlplus端口
49162 oem端口
oracle连接参数
port:49161
sid:xe
username:oracle
password:oracle

SYS密码:oracle

Docker容器第三课:企业级应用部署-实战_docker_46

下载oracle 连接工具测试

Docker容器第三课:企业级应用部署-实战_应用部署_47


七、使用docker部署ElasticSearch+Kibaba部署

7.1获取参考资料

ElasticSearch

Docker容器第三课:企业级应用部署-实战_mysql_48

注意ElasticSearch版本 7.17.0 用的最多

Docker容器第三课:企业级应用部署-实战_docker_49

Kibaba

Docker容器第三课:企业级应用部署-实战_应用部署_50

Kibaba版本需与ElasticSearch版本一致

Docker容器第三课:企业级应用部署-实战_应用部署_51

7.2ElasticSearch应用部署

相关前置配置

mkdir -p /opt/es/config
mkdir -p /opt/es/data
chmod -R 777 /opt/es

下载镜像并运行

docker pull elasticsearch:7.17.0
#运行容器
docker run --name es -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /opt/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /opt/es/data:/usr/share/elasticsearch/data \
-v /opt/es/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.17.0

#解释
-e "discovery.type=single-node" \   单节点部署
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \   设置启动内存范围
-v /opt/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ 挂在配置文件
-v /opt/es/data:/usr/share/elasticsearch/data \ 挂在数据目录
-v /opt/es/plugins:/usr/share/elasticsearch/plugins \ 挂在插件目录


写入配置信息

echo "http.host:0.0.0.0">>/opt/es/config/elasticsearch.yml
docker restart es

验证

Docker容器第三课:企业级应用部署-实战_docker_52

7.3Kibana应用部署

下载镜像并运行

docker pull kibana:7.17.0
docker run  -d --name kibana \
-e ELASTICSEARCH_HOSTS=http://192.168.0.202:9200 \
-p 5601:5601 kibana:7.17.0
如部署报错可查看日志纠错
docke logs ID/

Docker容器第三课:企业级应用部署-实战_tomcat_53


八、使用docker部署Redis部署

8.1获取参考资料

Docker容器第三课:企业级应用部署-实战_nginx_54

Docker容器第三课:企业级应用部署-实战_docker_55

8.2运行单节点redis

下载镜像及运行

#创建配置文件目录
mkdir -p /opt/redis/conf
touch /opt/redis/conf/redis.conf
#下载镜像
docker pull redis 
#运行容器
docker run  --name redis -p 6379:6379 \
-v /opt/redis/data:/data \
-v /opt/redis/conf:/etc/redis \
-d redis redis-server /etc/redis/redis.conf
#解释
-v /opt/redis/data:/data \   挂在数据目录
-v /opt/redis/conf:/etc/redis \  挂在redis 配置目录
-d redis redis-server /etc/redis/redis.conf 
运行redis镜像中的redis-server 并从/etc/redis/redis.conf读取配置信息

Docker容器第三课:企业级应用部署-实战_mysql_56

验证部署

docker验证    先查询容器内redis IP地址

docker inspect redis
docker run -it redis:latest redis-cli -h 172.17.0.4

Docker容器第三课:企业级应用部署-实战_应用部署_57

也可在物理机中安装redis后进行远程连接

yum -y install redis
redis-cli -h 192.168.0.202 -p 6379

8.3部署集群redis

安装redis-cluster;3主3从方式,从为了同步备份,主进行slot数据分片

编辑脚本文件
for port in $(seq 8001 8006); \
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port ${port}
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.0.202
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
appendonly yes
EOF
docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d redis:5.0.7 redis-server /etc/redis/redis.conf; \
done
#解释
for port in $(seq 8001 8006);   
6个redis 创建6个端口 8001-8006
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
#创建6个配置目录保存redis配置 

cat << E0F>/mydata/redis/node-${port}/conf/redis.conf
port ${port}
#每个redis端口
cluster-enabled yes
#每个redis集群模式
cluster-config-file nodes.conf
#配置文件名字
cluster-node-timeout 5000
#每个redis timeout时间
cluster-announce-ip 192.168.0.202   #宿主机地址
cluster-announce-port ${iport}
#对外声明的IP地址及端口
cluster-announce-bus-port 1${port}
appendonly yes
EOF

docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d redis:5.0.7 redis-server /etc/redis/redis.conf; \
done
循环6次 创建6个redis

Docker容器第三课:企业级应用部署-实战_应用部署_58

首先登录其中一个集群-redis-8001
docker exec -it reedis-8001 bash
创建redis-cluster  集群
redis-cli --cluster create 192.168.0.202:8001 192.168.0.202:8002 192.168.0.202:8003 192.168.0.202:8004 192.168.0.202:8005 192.168.0.202:8006 --cluster-replicas 1

配置方式 3主3从 分别对应6个redis容器 

Docker容器第三课:企业级应用部署-实战_nginx_59

Docker容器第三课:企业级应用部署-实战_mysql_60

接受此配置方式  输入 yes即可创建成功

访问redis 集群

redis-cli -h 192.168.0.202 -p 8001 -c
访问集群redis 需要加 -c

Docker容器第三课:企业级应用部署-实战_应用部署_61


九、使用docker部署RabbitMQ部署

9.1获取参考资料

Docker容器第三课:企业级应用部署-实战_应用部署_62

选择带有management的镜像

Docker容器第三课:企业级应用部署-实战_nginx_63


9.2部署rabbitmq

本次部署带有管理控制台的rabitmq

docker run -d --name rabbitmq \
-p 5671:5671 -p 5672:5672 -p 25672:25672 -p 15671:15671 -p 15672:15672 \
-v /opt/rabbitmq:/var/lib/rabbitmq rabbitmq:management

#说明
4369,25672(Erlang发现和集群端口)
5672,5671(AMQP端口)
15672(web管理端口)
61613,61614(STOMP协议端口)
1883,8883(MQTT协议端口)

Docker容器第三课:企业级应用部署-实战_应用部署_64

Docker容器第三课:企业级应用部署-实战_mysql_65

默认用户密码

十、使用docker部署Harbor镜像私有仓库

Docker容器第三课:企业级应用部署-实战_nginx_66

先决条件

Docker容器第三课:企业级应用部署-实战_mysql_67

离线包安装方式

Docker容器第三课:企业级应用部署-实战_docker_68

上传 docker-compose-Linx-x86_64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
docker  compose

Docker容器第三课:企业级应用部署-实战_mysql_69

编辑harbor.yml文件配置hostname

Docker容器第三课:企业级应用部署-实战_tomcat_70

./prepare
#初始化配置文件
./install.sh
#安装镜像

Docker容器第三课:企业级应用部署-实战_tomcat_71

Docker容器第三课:企业级应用部署-实战_nginx_72

所有docker宿主机配置私有仓库可信任地址,仅用户http方式

vi /etc/docker/daemon.json
完成后重启

Docker容器第三课:企业级应用部署-实战_mysql_73

将本地镜像上传

本地镜像打标签
docker tag tomcat:v1 192.168.31.61/library/tomcat:v1

登录并推送
docker login 192.168.31.61
docker push 192.168.31.61/library/tomcat:v1

Docker容器第三课:企业级应用部署-实战_docker_74

拉取镜像


Docker容器第三课:企业级应用部署-实战_docker_75

复制路径进行拉取


docker pull 192.168.31.61/library/tomcat:v1