首页 > 其他分享 >Docker容器第三课:企业级应用部署-实战

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

时间:2024-02-05 13:31:52浏览次数:27  
标签:opt redis 企业级 nginx conf mysql docker Docker 第三课

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

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

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

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

1.2Docker 参考资料

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

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

二、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 容器

安装依赖

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

查看docker版本

docker version

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

运行hello-world 测试

docker run hello-world

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

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

查看所有镜像源

docker images

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

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

阿里云镜像加速可以进

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

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

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

Docker容器第三课:企业级应用部署-实战_nginx_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容器第三课:企业级应用部署-实战_mysql_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容器第三课:企业级应用部署-实战_docker_11

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

Docker容器第三课:企业级应用部署-实战_nginx_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容器第三课:企业级应用部署-实战_mysql_13

curl http://172.17.0.2  验证

Docker容器第三课:企业级应用部署-实战_docker_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容器第三课:企业级应用部署-实战_应用部署_15

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

Docker容器第三课:企业级应用部署-实战_mysql_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容器第三课:企业级应用部署-实战_mysql_17

3.4修改nginx 配置文件

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

worker_processes  auto   目前为4个进程

Docker容器第三课:企业级应用部署-实战_docker_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容器第三课:企业级应用部署-实战_tomcat_19

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




四、使用docker部署Tomcat部署

4.1获取Tomcat参考资料

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

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

Docker容器第三课:企业级应用部署-实战_tomcat_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容器第三课:企业级应用部署-实战_tomcat_24

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

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

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

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

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

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

最后访问web页面验证

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

五、使用docker部署Mysql部署

5.1获取Tomcat参考资料

Docker容器第三课:企业级应用部署-实战_应用部署_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容器第三课:企业级应用部署-实战_nginx_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容器第三课:企业级应用部署-实战_docker_34

mysql -h 192.168.0.202 -uroot -ppassword -P 3306

Docker容器第三课:企业级应用部署-实战_nginx_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容器第三课:企业级应用部署-实战_mysql_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容器第三课:企业级应用部署-实战_mysql_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容器第三课:企业级应用部署-实战_docker_38

需要断点位置信息

show master status\G

Docker容器第三课:企业级应用部署-实战_tomcat_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容器第三课:企业级应用部署-实战_应用部署_40

启动从服务器查看状态

start slave;
show master status\G

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


5.3.4验证mysql集群

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

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

六、使用docker部署Oralce部署

6.1获取oracle 参考资料

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

Docker容器第三课:企业级应用部署-实战_mysql_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容器第三课:企业级应用部署-实战_tomcat_47


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

7.1获取参考资料

ElasticSearch

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

注意ElasticSearch版本 7.17.0 用的最多

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

Kibaba

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

Kibaba版本需与ElasticSearch版本一致

Docker容器第三课:企业级应用部署-实战_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容器第三课:企业级应用部署-实战_tomcat_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容器第三课:企业级应用部署-实战_应用部署_53


八、使用docker部署Redis部署

8.1获取参考资料

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

Docker容器第三课:企业级应用部署-实战_nginx_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容器第三课:企业级应用部署-实战_应用部署_56

验证部署

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

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

Docker容器第三课:企业级应用部署-实战_tomcat_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容器第三课:企业级应用部署-实战_docker_59

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

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

访问redis 集群

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

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


九、使用docker部署RabbitMQ部署

9.1获取参考资料

Docker容器第三课:企业级应用部署-实战_tomcat_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容器第三课:企业级应用部署-实战_nginx_64

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

默认用户密码



标签:opt,redis,企业级,nginx,conf,mysql,docker,Docker,第三课
From: https://blog.51cto.com/u_13864558/9606877

相关文章

  • docker安装
    前言  Docker是一个开源的应用容器引擎,是用Go语言实现的,Docker可以让开发者打包他们的应用和依赖包到轻量级、可移植的容器中,然后可以发布到任何Linux机器中。容器的优点很多,比如打包应用和依赖方便部署;做环境隔离,在做深度学习时就可以在容器中进行,安装各种包,不会污染到宿主机;......
  • Ubuntu下docker以及docker-compose安装
    Ubuntu下docker以及docker-compose安装Docker//使用官方脚本自动安装curl-fsSLhttps://test.docker.com-oget-docker.shsudoshget-docker.sh如果要使用Docker作为非root用户,则应考虑使用类似以下方式将用户添加到docker组:$sudousermod-aGdockeryour-user......
  • docker和k8s的区别
    docker是一个开源的应用容器引擎,开发者可以打包他们的应用以及依赖到一个容器中,发布到流行的liunx系统上,或者实现虚拟化。k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等。一、虚拟化角度:传统的虚拟技术,在将物理硬件虚拟成多套硬件后,需要......
  • 一句话总结Docker与K8S的关系
    一句话总结:Docker只是容器的一种,它面向的是单体,K8S可以管理多种容器,它面向的是集群,Docker可以作为一种容器方案被K8S管理。下文继续具体介绍。1、容器的核心概念介绍这几个核心概念:OCI、CR、Runc、Containerd、CRI。1.1、容器运行规范容器运行规范OCI(OpenContainerInitiat......
  • Docker - 离线安装
    Docker-离线安装环境:centos8,docker25 1.安装包官方地址:https://download.docker.com/linux/static/stable/x86_64/   2.解压代码如下(示例):tar-zxvfdocker-18.06.3-ce.tgz  3.将解压出来的docker文件复制到/usr/bin/目录下注:不可修改目录,其中runc文......
  • 1.Dockerfile-nginx安装配置
    1.编译安装脚本mkdir  /data/docker/dockerfile/nginxcd  /data/docker/dockerfile/nginx拷贝nginx.1.24.0.tar.gz到这个目录下vimDockerfile,注意文件名必须是这个:FROMcentos:latest1MAINTAINERthisisnginxdockerfile#安装软件RUNyum-yinstallmakez......
  • VMware vSphere Foundation (VVF) - 企业级工作负载平台组合解决方案
    VMwarevSphereFoundation(VVF)-企业级工作负载平台组合解决方案TheEnterpriseWorkloadPlatform请访问原文链接:https://sysin.org/blog/vmware-vsphere-foundation/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMwarebyBroadcom产品组合:VMwareCloud......
  • 在K8S中,Kubernetes与Docker的关系?
    在Kubernetes(简称K8s)与Docker之间,存在一种互补和依赖的关系:互补关系:Docker:提供容器化解决方案,允许开发人员将应用及其依赖打包到可移植的容器镜像中。Docker主要负责构建、运行和分发这些容器。Kubernetes:是一个容器编排系统,它的目标是自动化部署、扩展以及管理容器化的应用......
  • docker部署的坑--基于 alpine 制作docker镜像时
    基于alpine制作docker镜像时大家经常爱用alpine镜像 FROMopenjdk:8-jdk-alpine但这个镜像是一个精简版,里面缺不少东西,常见的问题如下:1、alpine操作系统下的软件库(国外)经常崩#国外的软件库崩掉时会出现“ERROR:http://dl-cdn.alpinelinux.org/alpine/v3.16/main:tempo......
  • Docker基础知识
    学习DockerDocker基础知识1.仓库、镜像、容器介绍仓库:是存放镜像的场所,dockerhub是最大的开源仓库,可以通过dockersearch查找所需镜像并通过dockerpull拉取镜像:docker真正的操作对象容器:dockerrun启动镜像会变成容器,容器顶层为一个可操作层,修改不会影响镜像。每个......