以下可以直接运行执行命令,会自动下载相关版本的镜像文件,如果下载速度太慢,则需要配置镜像加速,请参考:https://blog.csdn.net/lingerlan510/article/details/116448894
我docker安装组件一般都是将配置文件挂载到外面,我的存放位置为:/opt/docker/xxx(xxx为组件名称),安装组件前请先创建好/opt/docker文件夹
安装MySQL
搜索镜像
docker search mysql
拉取镜像
docker pull mysql
查看镜像
docker images
运行镜像
docker run -p 3306:3306 --name mysql -v /opt/docker/mysql/conf:/etc/mysql/conf.d -v /opt/docker/mysql/logs:/logs -v /opt/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
命令解释
-p 3306:3306 将主机的3306端口映射到docker容器的3306端口(前面的是主机端口)
–name mysql 运行服务名字
-v /opt/docker/mysql/conf:/etc/mysql/conf.d :将主机/opt/docker/mysql录下的conf/my.cnf 挂载到容器的 /etc/mysql/conf.d
-v /opt/docker/mysql/logs:/logs: 将主机/opt/docker/mysql目录下的 logs 目录挂载到容器的 /logs
-v /opt/docker/mysql/data:/var/lib/mysql: 将主机/opt/docker/mysql目录下的data目录挂载到容器的 /var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码
-d mysql : 后台程序mysql
测试MySQL连接:利用navicat测试(阿里云服务器要到安全组中打开端口哟)
安装Redis
搜索镜像
docker search redis
拉取镜像
docker pull redis
运行镜像
docker run -p 6379:6379 --name redis -v /opt/docker/redis/redis.conf:/etc/redis/redis.conf -v /opt/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
安装MongoDb
搜索镜像
docker search mongodb
拉取镜像
docker pull mongodb
运行镜像
docker run -d -p 27017:27017--name mongodb mongodb
安装RabbitMQ
搜索镜像
docker search rabbitmq
拉取镜像
docker pull rabbitmq
运行镜像
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq
安装插件
docker ps
docker exec -it 镜像ID /bin/bash
rabbitmq-plugins enable rabbitmq_management
测试RabbitMQ: http://linuxip地址:15672,这里的用户名和密码默认都是guest
安装Nacos(推荐1.4.2版本)
参考博文:https://www.cnblogs.com/binz/p/12295346.html
安装Seata(注册到Nacos,配置文件从Nacos中获取)
拉取镜像
docker pull seataio/seata-server:1.4.2
运行镜像
docker run --name seata1.4.2 -p 8091:8091 -d seataio/seata-server:1.4.2
复制配置文件(前面是容器地址,后面是物理机地址)
docker cp seata1.4.2:/seata-server /opt/docker/seata1.4.2
停止服务
docker stop seata1.4.2
删除服务
docker rm seata1.4.2
进入物理机本地修改配置文件registry.conf
cd /opt/docker/seata1.4.2/resources
vi registry.conf
文件内容如下:
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos"
nacos {
application = "seata-server"
serverAddr = "172.168.1.35:8848"
namespace = "89f54c6f-3b21-46a4-bd1b-242ae159c12e"
cluster = "default"
username = ""
password = ""
}
eureka {
serviceUrl = "http://localhost:8761/eureka"
application = "default"
weight = "1"
}
redis {
serverAddr = "localhost:6379"
db = 0
password = ""
cluster = "default"
timeout = 0
}
zk {
cluster = "default"
serverAddr = "127.0.0.1:2181"
sessionTimeout = 6000
connectTimeout = 2000
username = ""
password = ""
}
consul {
cluster = "default"
serverAddr = "127.0.0.1:8500"
}
etcd3 {
cluster = "default"
serverAddr = "http://localhost:2379"
}
sofa {
serverAddr = "127.0.0.1:9603"
application = "default"
region = "DEFAULT_ZONE"
datacenter = "DefaultDataCenter"
cluster = "default"
group = "SEATA_GROUP"
addressWaitTime = "3000"
}
file {
name = "file.conf"
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "nacos"
nacos {
serverAddr = "172.168.1.35:8848"
namespace = "89f54c6f-3b21-46a4-bd1b-242ae159c12e"
group = "DEFAULT_GROUP"
username = ""
password = ""
}
consul {
serverAddr = "127.0.0.1:8500"
}
apollo {
appId = "seata-server"
apolloMeta = "http://192.168.1.204:8801"
namespace = "application"
}
zk {
serverAddr = "127.0.0.1:2181"
sessionTimeout = 6000
connectTimeout = 2000
username = ""
password = ""
}
etcd3 {
serverAddr = "http://localhost:2379"
}
file {
name = "file.conf"
}
}
重新运行容器(注意修改SEATA_IP为自己物理机IP),至此完成启动
docker run -d --name seata1.4.2 \
-p 8091:8091 \
-v /opt/docker/seata1.4.2:/seata-server \
-e SEATA_IP=192.168.211.131 \
-e SEATA_PORT=8091 \
seataio/seata-server:1.4.2
检查是否启动成功
docker ps
安装PostgreSql
下载镜像(此处我下载13版本)
docker pull postgres:13
运行镜像
docker run --name postgres \
-e POSTGRES_PASSWORD=password \
-p 5432:5432 \
-v /opt/docker/postgresql:/var/lib/postgresql/data \
-d postgres:13
参数说明:
POSTGRES_PASSWORD:指定数据库密码
进入容器安装postgis扩展插件:
docker exec -it postgres bash
apt-get update
apt-get install postgresql-13-postgis-3 postgresql-13-postgis-3-dbgsym postgresql-13-postgis-3-scripts
find /usr -name postgis.control
重启容器
docker restart postgres