docker启动各种容器,nginx、tomcat 、redis、mysql、rabbitmq、nacos、postgresqll等各种容器

mysql

docker pull mysql

启动

docker run -d --name mysql -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456 -v /usr/local/docker/mysql/log:/var/log/mysql -v  /usr/local/docker/mysql/data:/var/lib/mysql -v /usr/local/docker/mysql/conf/etc/mysql mysql

或者

docker run -d --name mysql -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456  -v  /usr/docker/mysql/data:/var/lib/mysql -v /usr/docker/mysql/conf:/etc/mysql mysql

  • -v 挂载
  • -e

启动nginx

  • 拉取nginx镜像 docker pull nginx
[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

  • 启动nginx

docker run -d --name nginx01 -p 80:80 -v /usr/share/nginx:/usr/share/nginx/html -v /usr/share/nginx/log:/var/log/nginx nginx

-d 后台运行
-nane 容器名称
-v 挂在容器文件到宿主上 -v 宿主文件路径:容器内部文件路径 eg : -v /usr/share/nginx:/usr/share/nginx/htm
启动成功

启动postgresql

拉取postgresql

docker pull postgresql

启动

docker run -it -d --name postgresql -e POSTGRES_USER=postgres -e  POSTGRES_PASSWORD=123456 -p 5432:5432 -v /data/postgres_data:/var/lib/postgresql/data postgres

最后的postgres 是容器的名称,也可以用容器的id
POSTGRES_USER 用户名
POSTGRES_PASSWORD 密码
-v 挂在容器文件到宿主上 -v 宿主文件路径:容器内部文件路径 eg : -v /data/postgres_data:/var/lib/postgresql/data

nacos


docker run -d
--name nacos															 
-p 8848:8848  -p 9848:9848 -p 9849:9849
--privileged=true
-e JVM_XMS=256m
-e JVM_XMX=256m
-e MODE=standalone
-v /usr/local/docker/nacos/logs/:/home/nacos/logs
-v /usr/local/docker/nacos/conf/:/home/nacos/conf/
--restart=always
nacos/nacos-server

docker run -d --name nacos -p 8848:8848  -p 9848:9848 -p 9849:9849 --privileged=true -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -v /usr/local/docker/nacos/logs/:/home/nacos/logs -v /usr/local/docker/nacos/conf/:/home/nacos/conf/ --restart=always bdf60dc2ada3

docker run -d --name nacos	-p 8848:8848  -p 9848:9848 -p 9849:9849 --privileged=true -e MODE=standalone -v /usr/local/docker/nacos/logs/:/home/nacos/logs -v /usr/local/docker/nacos/conf/:/home/nacos/conf/ --restart=always nacos/nacos-server
docker run -d --name nacos-server2.3.2	-p 8848:8848  -p 9848:9848 -p 9849:9849 --privileged=true -e MODE=standalone -v /usr/local/docker/nacos/logs/:/home/nacos/logs -v /usr/local/docker/nacos/conf/:/home/nacos/conf/ --restart=always nacos/nacos-server

新版本2.3.2 启动会报错
我们可以先随便启动一个容器,把容器里面的配置文件复制到宿主来

docker run -d --name nacos-server2.3.2	-p 8848:8848  --restart=always nacos/nacos-server

使用docker cp复制

docker cp container:${container 'path} ${parasitifer} `

具体命令:

docker cp f7bbd7748dcf:/home/nacos/conf  /usr/local/docker/nacos/2.3.2conf

在这里插入图片描述
然后再把这个容器停掉,然后删除,重新启动一个新的:

docker run -d --name nacos-server2.3.2	-p 8848:8848  -p 9848:9848 -p 9849:9849 --privileged=true -e MODE=standalone -v /usr/local/docker/nacos/logs/:/home/nacos/logs -v /usr/local/docker/nacos/2.3.2conf/:/home/nacos/conf/ --restart=always nacos/nacos-server

设置挂载目录,为刚才复制的配置文件的文件夹2.3.2conf文件下

-v /usr/local/docker/nacos/2.3.2conf/:/home/nacos/conf/

然后就可以成功启动了
在这里插入图片描述
旧版本启动1.4.8

docker pull nacos/nacos-server:v1.4.8
docker run -d --name  nacos-v1.4.8   -p 8849:8848  --privileged=true -e MODE=standalone  -e NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 -e NACOS_AUTH_USERNAME=nacos -e NACOS_AUTH_PASSWORD=123456   --restart=always nacos/nacos-server:v1.4.8 

Zipkin

docker pull openzipkin/zipkin
docker run -d --name zipkin --restart=always -p 9411:9411 9c7a54a9a43c

--restart=always 可以让容器在退出后自动重启,保证可用性

Minio


docker run -p 9000:9000 -p 9001:9001 \
     --name minio \
     -d --restart=always \
     -e "MINIO_ROOT_USER=admin" \
     -e "MINIO_ROOT_PASSWORD=minio123456" \
     -v /usr/local/docker/minio/data:/data \
     -v /usr/local/docker/minio/config:/root/.minio \
     minio/minio \
	 --name fuck_minio
     server /data --console-address ":9090" -address ":9000"

RabbitMQ

docker run -d  --name rabbitmq-3.12management  -p 5672:5672  -p 15672:15672  --privileged=true -v /usr/local/docker/rabbitmq3.12.management:/etc/rabbitmq -v /usr/local/docker/rabbitmq3.12.management/log:/var/log/rabbitmq  6b709445f081


启动后通过ip+端口,登陆用guest/guest会提示:
如果进不去后台页面,那么进入容器:
docker exec -it 容器id/名称 /bash/bin
eg:

	docker exec -it c5ec87d50e0e /bin/bash

输入rabbitmq-plugins enable rabbitmq_management

然后就可以进入页面,进入页面后用guest账号密码登录如果出现:
User can only log in via localhost
在这里插入图片描述
这个情况的最佳解决办法是添加一个新的帐号:
进入容器:
docker exec -it 容器id/名称 /bash/bin
eg:

	docker exec -it c5ec87d50e0e /bin/bash

在这里插入图片描述

	rabbitmqctl add_user root123456

添加 root用户为administrator角色

rabbitmqctl set_user_tags rootadministrator

设置 admin 用户的权限,指定允许访问的vhost以及write/read

rabbitmqctl set_permissions -p "/" root".*" ".*" ".*"

查看vhost(/)允许哪些用户访问

rabbitmqctl list_permissions -p /

查看用户列表

rabbitmqctl list_users

在这里插入图片描述
在这里插入图片描述

xxl-jb

官网

“调度数据库初始化SQL脚本” 位置为:

/xxl-job/doc/db/tables_xxl_job.sql

// Docker地址:https://hub.docker.com/r/xuxueli/xxl-job-admin/ (建议指定版本号)
docker pull xuxueli/xxl-job-admin

创建容器并运行

/**
* 如需自定义 mysql 等配置,可通过 "-e PARAMS" 指定,参数格式 PARAMS="--key=value  --key2=value2" ;
* 配置项参考文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties
* 如需自定义 JVM内存参数 等配置,可通过 "-e JAVA_OPTS" 指定,参数格式 JAVA_OPTS="-Xmx512m" ;
*/
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin  -d xuxueli/xxl-job-admin:{指定版本}
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.128.128:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai" -p 8081:8080 -v /tmp:/data/applogs --name xxl-job-admin  -d 869b16e5c556

Access denied for user ‘root’@‘172.17.0.1’ (using password: YES)

在这里插入图片描述
解决方案 :设置数据库密码

docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://172.17.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root  --spring.datasource.password=123456 "    -p 8082:8080 -v /tmp:/data/applogs --name xxl-job-admin  -d xuxueli/xxl-job-admin:2.4.1

在这里插入图片描述

rocketmq

创建主机挂载日志及数据目录
mkdir -p /usr/local/docker/rocketmq/{data,logs}

授权相关权限

chmod -R 777 /usr/local/docker/rocketmq/logs
chmod -R 777 /usr/local/docker/rocketmq/data

拉取镜像

docker pull apache/rocketmq:5.3.1

启动容器

docker run -d --name rmqnamesrv -p 9876:9876 --network rocketmq -- restart=always apache/rocketmq:5.3.1 sh mqnamesrv

最终

# 启动 NameServer
docker run -d --name rmqnamesrv -p 9876:9876 --network rocketmq -- restart=always apache/rocketmq:5.3.1 sh mqnamesrv

安装Broker
创建目录

mkdir /usr/local/docker/rocketmq/ {logs,data}

授权相关权限

chmod -R 777 /usr/local/docker/rocketmq/broker/logs
chmod -R 777 /usr/local/docker/rocketmq/broker/data

创建配置文件

vim /usr/local/docker/rocketmq/broker/conf/broker.conf

brokerClusterName = Defau1tCluster
brokerName = broker-a
brokerId = 0
deletewhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 192.168.128.128

brokerIP1 记得换成自己虚拟机IP地址

docker run -d \
--restart=always \
--name rmqbroker \
--link rmqnamesrv:namesrv \
-p 10911:10911 \
-p 10909:10909 \
-v /usr/local/docker/rocketmq/broker/data \
-v /usr/local/docker/rocketmq/broker/conf:/home/rocketmq/rocketmq-4.9.2/conf/broker.conf \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
apache/rocketmq \
sh mqbroker -c /home/rocketmq/rocketmq-4.9.2/conf/broker.conf I

docker run -d \
--name rmqbroker \
--network rocketmq \
-p 10912:10912 -p 10911:10911 -p 10909:10909 \
-p 8080:8080 -p 8081:8081 \
-e "NAMESRV_ADDR=rmqnamesrv:9876" \
-v ./broker.conf:/home/rocketmq/rocketmq-5.3.1/conf/broker.conf \
apache/rocketmq:5.3.1 sh mqbroker --enable-proxy \
-c /home/rocketmq/rocketmq-5.3.1/conf/broker.conf

最终


docker run -d \
--name rmqbroker \
--network rocketmq \
-p 10912:10912 -p 10911:10911 -p 10909:10909 \
-p 8080:8080 -p 8081:8081 \
-e "NAMESRV_ADDR=rmqnamesrv:9876" \
-v /usr/local/docker/rocketmq/broker/conf/broker.conf:/home/rocketmq/rocketmq-5.2.0/conf/broker.conf \
apache/rocketmq:5.2.0 sh mqbroker --enable-proxy \
-c /home/rocketmq/rocketmq-5.2.0/conf/broker.conf

可视化界面

拉取镜像

docker pull apacherocketmq/rocketmq-dashboard:latest

启动 可视化界面

 docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.128.128:9876" -p 8087:8080 -t apacherocketmq/rocketmq-dashboard:latest

注意将第四行命令-e "JAVA_OPTS=-Drocketmq.namesrv.addr=后的IP地址换成自己虚拟机IP地址

访问ip:8072
在这里插入图片描述
rocketmq官网教程:https://rocketmq.apache.org/zh/docs/quickStart/02quickstartWithDocker
1.拉取RocketMQ镜像

docker pull apache/rocketmq:5.3.1

2.创建容器共享网络
RocketMQ 中有多个服务,需要创建多个容器,创建 docker 网络便于容器间相互通信。

docker network create rocketmq

3.启动NameServer

# 启动 NameServer
docker run -d --name rmqnamesrv -p 9876:9876 --network rocketmq apache/rocketmq:5.3.1 sh mqnamesrv

# 验证 NameServer 是否启动成功
docker logs -f rmqnamesrv

4.启动 Broker+Proxy
nameServer 成功启动后,我们启动 Broker 和 Proxy。

配置 Broker 的IP地址

echo "brokerIP1=127.0.0.1" > broker.conf

启动 Broker 和 Proxy

docker run -d \
--name rmqbroker \
--network rocketmq \
-p 10912:10912 -p 10911:10911 -p 10909:10909 \
-p 8080:8080 -p 8081:8081 \
-e "NAMESRV_ADDR=rmqnamesrv:9876" \
-v ./broker.conf:/home/rocketmq/rocketmq-5.3.1/conf/broker.conf \
apache/rocketmq:5.3.1 sh mqbroker --enable-proxy \
-c /home/rocketmq/rocketmq-5.3.1/conf/broker.conf

验证 Broker 是否启动成功

docker exec -it rmqbroker bash -c "tail -n 10 /home/rocketmq/logs/rocketmqlogs/proxy.log"

我们可以看到 'The broker boot success..', 表示 Broker 已成功启动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值