1. 程式人生 > 其它 >Docker搭建MySql、Redis、RabbitMQ

Docker搭建MySql、Redis、RabbitMQ

Docker搭建MySql、Redis、RabbitMQ

1.1 安裝docker

(1)刪除老版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

(2) 安裝工具包並設定儲存庫

sudo yum install -y yum-utils

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

(3)安裝docker引擎

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

(4)docker基本使用命令

啟動docker

sudo systemctl start docker

檢查docker版本

docker -v

檢視docker已有映象

sudo docker images

設定docker開機啟動

sudo systemctl enable docker

(5)設定阿里雲映象倉庫

建立檔案

sudo mkdir -p /etc/docker

修改配置, 設定映象

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://vw9qapdy.mirror.aliyuncs.com"]
}
EOF

重啟後臺執行緒

sudo systemctl daemon-reload

重啟docker

sudo systemctl restart docker

docker查錯

sudo dockerd --debug

1.2 docker安裝mysql

(1)docker安裝mysql

sudo docker pull mysql:5.7

(2)docker啟動mysql

引數:

  • -p 3306:3306:將容器的3306埠對映到主機的3306埠

  • --name:給容器命名

  • -v /mydata/mysql/log:/var/log/mysql:將配置檔案掛載到主機/mydata/..

  • -e MYSQL_ROOT_PASSWORD=root:初始化root使用者的密碼為root

sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

(3)檢視docker啟動的容器:

sudo docker ps

(4)配置mysql

進入掛載的mysql配置目錄

cd /mydata/mysql/conf

修改配置檔案 my.cnf

vi my.cnf

輸入以下內容

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
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

# Esc
# :wq

docker重啟mysql使配置生效

docker restart mysql

(5)容器隨docker啟動自動執行

# mysql
docker update mysql --restart=always

1.3 docker安裝redis

(1)docker拉取redis映象

docker pull redis

(2)docker啟動redis

mkdir -p /mydata/redis/conf

touch /mydata/redis/conf/redis.conf

(3)啟動redis容器

docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

(4)配置redis持久化

echo "appendonly yes"  >> /mydata/redis/conf/redis.conf

#重啟生效
docker restart redis

(5)容器隨docker啟動自動執行

# redis
docker update redis --restart=always

1.4 docker安裝RabbitMQ

這裡使用docker安裝RabbitMQ

(1)切換root使用者

sudo -i 

(2)安裝命令

#查詢rabbitMQ映象
docker search rabbitmq

#拉取rabbitMQ映象
docker pull rabbitmq

#執行rabbitMQ
docker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq

#進入容器
docker exec -it 容器id/容器名稱 /bin/bash

#安裝安裝外掛
rabbitmq-plugins enable rabbitmq_management

#退出當前容器
exit

(3)訪問:http://192.168.56.10:15672/# 使用者密碼都是guest

#常用命令
#停止容器
docker stop 容器id/容器名稱

#刪除容器
docker rm 容器id/容器名稱

(4)Stats in management UI are disabled on this [node]

docker exec -it {rabbitmq容器名稱或者id} /bin/bash

#進入容器後,cd到以下路徑
cd /etc/rabbitmq/conf.d/

#修改 management_agent.disable_metrics_collector = false
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf

#退出容器
exit

#重啟rabbitmq容器
docker retart {rabbitmq容器id}

(5)容器隨docker啟動自動執行

#容器隨docker啟動自動執行
docker update rabbitmq --restart=always