docker 安装开发中常用服务以及软件

Docker学习之路(七) 软件安装篇 mysql 、mongodb、redis-cluster、rabbitmq

Docker 学习之路 --软件安装篇

加深docker学习映像 安装多个项目可能所用软件 把开发项目打成镜像运行

镜像的各种版本号 具体可查看 Dokerhub 官网:Docker Hub

特别提醒:像数据存储之类的容器 最好是选择数据卷挂载 这样才能更好的保存数据,否则因失误操作删除容器数据丢失悔不则已。

(一) mysql 安装

在docker 中 拉取咱们的 mysql 镜像 并运行容器实例
1.拉取对应镜像
docker pull mysql:5.7.30

image-20200531103915503

2.根据镜像 运行容器实例 (暴露端口 数据挂载 用户密码设置等)
docker run --name mysql-service -v /var/lib/mysql/data:/var/lib/mysql -v /var/lib/mysql/conf:/etc/mysql/conf.d -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=leiMysql.. -d mysql:5.7.30 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-time_zone="+8:00" 

image-20200531104558553

3.测试连接
4.可选 开启binlog日志
# 设置binlog位置
docker exec mysql-service bash -c "echo 'log-bin=/var/lib/mysql/mysql-bin' >> /etc/mysql/mysql.conf.d/mysqld.cnf"

# 配置 mysql的server-id
docker exec mysql-service bash -c "echo 'server-id=123' >> /etc/mysql/mysql.conf.d/mysqld.cnf"

(二) mongodb 安装

1.拉取对应镜像
docker pull mongo:4.2.5
2.根据镜像 运行容器实例 (暴露端口 数据挂载 用户密码设置等)
docker run -d -p 27017:27017 --name mongo425 -v /usr/local/mongo/conf:/etc/mongo/mongod.conf -v /usr/local/mongo/data:/data/db -e MONGO_INITDB_ROOT_USERNAME=超管账户 -e MONGO_INITDB_ROOT_PASSWORD=超管密码 mongo:4.2.5

image-20200531110112031

3.测试连接

(三) Redis-cluster 集群安装

个人本次采用的是 redis5.0.5 版本

1.先拉取 一个redis5.0.5 镜像
docker pull redis:5.0.5
2.创建配置文件和数据目录

创建 redis-cluster 目录 (存放配置以及数据)

mkdir -p /usr/local/redis-cluster

进入目录内

cd /usr/local/redis-cluster

编写一个集群创建模板

sudo vim redis-cluster.tmpl

填入如下内容:

注意:配置中 cluster-announce-ip 注意换为自己的IP啊

# redis每个节点的端口
port ${PORT}

#开启网络,保证外部可连接
bind 0.0.0.0

# 关闭保护模式
protected-mode no

#设置redis访问密码为Redis123
requirepass Redis123

#设置集群节点间访问密码,密码需跟上面一致
masterauth Redis123

# 开启集群
cluster-enabled yes

# 集群节点配置
cluster-config-file nodes-${PORT}.conf

# 超时
cluster-node-timeout 5000

# 集群节点IP host模式为宿主机IP
cluster-announce-ip 自己的IP啊

# 集群节点端口 7000 - 7005
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}

#集群pid 文件
pidfile /usr/local/redis-cluster/${PORT}/redis-${PORT}.pid

# 开启 appendonly 备份模式
appendonly yes

# 每秒钟备份
appendfsync everysec

# 对aof文件进行压缩时,是否执行同步操作
no-appendfsync-on-rewrite no

# 当目前aof文件大小超过上一次重写时的aof文件大小的100%时会再次进行重写
auto-aof-rewrite-percentage 100

# 重写前AOF文件的大小最小值 默认 64mb
auto-aof-rewrite-min-size 5120mb

# 关闭快照备份
save ""

3.批量创建配置文件和数据目录 (进入/usr/local/redis-cluster 后在终端执行)
for port in `seq 7000 7005`; do \
        mkdir -p ./${port}/conf \
        && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \
        && mkdir -p ./${port}/data; \
        done

image-20200531111532029

随机进入一个文件夹 查看配置文件 发现端口已经是动态更改好了

image-20200531111642167

4.批量启动 redis 容器

注意:这里的–memeory=1G是限制单个 docker 容器占用内存大小为 1G,超过会被进程杀死。 因为我自己服务器较小 (如不需要限制内存大小 则取消 --memory 参数即可)

for port in `seq 7000 7005`; do \
        docker run -d -it --memory=1G \
        -v /usr/local/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
        -v /usr/local/redis-cluster/${port}/data:/data \
        --restart always --name redis-${port} --net host \
        --sysctl net.core.somaxconn=1024 redis:5.0.5 redis-server /usr/local/etc/redis/redis.conf; \
        done

image-20200531115234597

5.创建redis-cluster 集群

随意进入一个redis 容器中 执行集群创建语句

docker exec -it redis-7000 /bin/bash

执行集群创建语句

redis-cli -a Redis123 --cluster create 192.168.10.122:7000 192.168.10.122:7001 192.168.10.122:7002 192.168.10.122:7003 192.168.10.122:7004 192.168.10.122:7005 --cluster-replicas 1

image-20200531115531488

然后提示创建 成功 就可以测试一波了

image-20200531131151238
6.附赠

如果需要删除doker 搭建的redis 容器

for port in `seq 7000 7005`; do \
 docker stop redis-${port};
 docker rm redis-${port};
done

(四)Rabbitmq 单机安装

1.拉取对应镜像
docker pull rabbitmq:management
2.启动镜像
  • 15672是web管理端端口
  • 5672 是容器通信 与项目整合所使用端口

1.使用默认guest账户 /密码登录

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management

2.自定义用户名和密码

docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=用户名 -e RABBITMQ_DEFAULT_PASS=密码 -p 15672:15672 -p 5672:5672 rabbitmq:management

image-20200713225725427

(五)安装docker容器可视化 Portainer

1.拉取对应镜像

还是拉取最新版

docker pull portainer/portainer

image-20200713230413766

2.选择模式进行启动
远程模式

即安装 portainer 与需要连接的dokcer或许不在一个服务器 那么这时候,我们可以通过端口IP 去连接另一个服务器的docker ,即远程连接模式 (当然 ,远程连接后 选择 本机docker的端口IP 一样可以监听到)

docker run -d -p 9000:9000 --restart=always --name prtainer portainer/portainer

image-20200713230708804

本机模式

即安装 portainer 与需要连接的dokcer在一个服务器,那么本机模式启动即可

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name prtainer portainer/portainer
3.访问Portainer容器:http://IP:9000

image-20200713230830530

连接docker

选择Local,代表本地模式,portainer仅管理本机的docker容器

选择Remote,代表远程模式,名称随意,在Endpoint URL中填写docker节点的地址:docker远程端口

说明下:

docker 默认是未开启外部访问的

需要连接docker的话 咱们需要额外配置,使其开启远程访问

vim /usr/lib/systemd/system/docker.service

注意查看文件 稍微修改一点

image-20200524184314558

保险起见 复制之前的文件并注释

使用我们下边这行代码配置 其暴露端口 随意 (注意安全组以及防火墙开放对应)

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:6500 -H unix:///var/run/docker.sock

重启

systemctl daemon-reload
systemctl restart docker

这样, 该docker 才能被远程通过ip:端口及访问 例如我们的 portanier 或者idea 连接服务器上的 docker

image-20200713231456171

image-20200713231607665

image-20200713231645529

可视化操作docker

然后就可以管理我们的镜像以及容器了,非常方便

image-20200713231759276

(六)ActiveMQ 单机安装

  • 61616是 activemq 的容器使用端口
  • 8161是 web 页面管理端口
docker run -d --name activemq -p 61616:61616 -p 8161:8161 webcenter/activemq

image-20200716224303531

登录到管理端查看

xxxx:8161

image-20200716224432362

image-20200716224701516

修改密码 (active 镜像里下载了vi命令)

进入容器中

docker exec -it 容器ID /bin/bash

image-20200716225500341

vi conf/jetty-realm.properties

image-20200716230747916

编辑保存自己密码即可

退出后从起容器

ActiveMQ 还有一个镜像 rmohr/activemq ,这个镜像,就下载量来说是高于webcenter/activemq的,其最近更新活跃为一年前,webcenter/activemq 已经很久没更新了,但是任然是可以使用的

docker run -p 61616:61616 -p 8161:8161 \
           -v /aa/dir/conf:/opt/activemq/conf \
           -v /aa/dir/data:/opt/activemq/data \
           rmohr/activemq

(七)SQL SERVER

docker pull microsoft/mssql-server-linux:2017-latest 
# 安装
# 说明
#-e ACCEPT_EULA = Y 设置ACCEPT_EULA变量为任何值,以确认你接受最终用户许可协议。 SQL Server 映像的必需设置。

#-e MSSQL_SA_PASSWORD =<YourStrong !Passw0rd> 指定你自己的强密码至少 8 个字符并达到SQL Server 密码要求。 SQL Server 映像的必需设置。
docker run -d -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=123456aA!' -p 1433:1433 --name sqlserver2017 -v /var/lib/mssql_data:/opt/mssql_data microsoft/mssql-server-linux:2017-latest

如果需要启动CDC功能,还需要开启代理

# 进入内部 开启代理  
docker exec -it sqlserver2017 "bash"
# 内部执行以下命令
/opt/mssql/bin/mssql-conf set sqlagent.enabled true
# 退出容器
exit
# 重启容器
docker restart sqlserver2017
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值