Docker運維筆記五:使用Docker-Compose安裝Redis4.0和Mysql5.7

docker 啟動每一次|關閉只能操作一個容器,而使用docker-compose 方式則可以一次性啟動|關閉多個容器,非常方便!

1、安裝Docker-Compose

下載docker-compose:

wget https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m) -O /usr/local/bin/docker-compose

對下載的文件添加可執(zhí)行權限:

sudo chmod +x /usr/local/bin/docker-compose

創(chuàng)建軟連接:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

測試一下是否安裝成功:

docker-compose --version

docker-compose version 1.25.0, build 0a186604
docker-py version: 4.1.0
CPython version: 3.7.4
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019
2、安裝MySQL5.7、Redis

創(chuàng)建掛載目錄

#mysql
mkdir -p /var/docker/mysql/data /var/docker/mysql/conf
#redis
mkdir -p /var/docker/redis/data /var/docker/redis/conf

創(chuàng)建mysql掛載的配置文件my.cnf

[client]
 port = 3306
 socket = /var/lib/mysql/data/mysql.sock
[mysqld]
 # 針對5.7版本執(zhí)行group by字句出錯問題解決
 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
 # 一般配置選項
 basedir = /var/lib/mysql
 datadir = /var/lib/mysql/data
 port = 3306
 socket = /var/lib/mysql/data/mysql.sock
 lc-messages-dir = /usr/share/mysql # 務必配置此項,否則執(zhí)行sql出錯時,只能顯示錯誤代碼而不顯示具體錯誤消息
 character-set-server=utf8
 back_log = 300
 max_connections = 3000
 max_connect_errors = 50
 table_open_cache = 4096
 max_allowed_packet = 32M
 #binlog_cache_size = 4M
 max_heap_table_size = 128M
 read_rnd_buffer_size = 16M
 sort_buffer_size = 16M
 join_buffer_size = 16M
 thread_cache_size = 16
 query_cache_size = 64M
 query_cache_limit = 4M
 ft_min_word_len = 8
 thread_stack = 512K
 transaction_isolation = REPEATABLE-READ
 tmp_table_size = 64M
 #log-bin=mysql-bin
 long_query_time = 6
 server_id=1
 innodb_buffer_pool_size = 256M
 innodb_thread_concurrency = 16
 innodb_log_buffer_size = 16M

創(chuàng)建redis掛載的配置文件redis.conf

vi /var/docker/redis/conf/redis.conf

#內(nèi)容
#bind 127.0.0.1
protected-mode no
appendonly yes
requirepass 123456

直接在登錄后當前用戶目錄下新建,比如我是( /home/docker-compose-yml)下創(chuàng)建mysql-redis.yml配置文件,內(nèi)容為

version: '3'

services:
  mysql:
    image: mysql:5.7.26 # MySQL鏡像
    container_name: mysql_5.7 # MySQL容器名稱
    # network_mode: "host" # 如果需要容器使用宿主機IP(內(nèi)網(wǎng)IP),則可以配置此項
    restart: always # 設置容器自啟模式
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci # 設置utf8字符集
    environment:
      MYSQL_ROOT_PASSWORD: 123456 # MySQL ROOT賬號密碼
    volumes:
      - /etc/localtime:/etc/localtime:ro # 設置容器時區(qū)與宿主機保持一致
      - /var/docker/mysql/data:/var/lib/mysql #掛載 MySQL數(shù)據(jù)
      - /var/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf # 映射數(shù)據(jù)庫配置文件\
    ports:
      - 3306:3306 # 端口映射
      
  redis:
    image: redis:4.0.14 # Redis鏡像
    container_name: redis_4.0 # Redis容器名稱
    restart: always
    command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes # 表示通過掛載配置文件追加配置
    volumes:
      - /etc/localtime:/etc/localtime:ro # 設置容器時區(qū)與宿主機保持一致
      - /var/docker/redis/data:/data #掛載 Redis數(shù)據(jù)
      - /var/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf #掛載 Redis配置
    ports:
      - 6379:6379 # 端口映射

然后運行如下命令創(chuàng)建MySql和Redis容器:

docker-compose -f mysql-redis.yml up -d

up選項啟動容器,-d選項以守護模式運行,鏡像如果沒有,docker會先拉取鏡像,有則直接創(chuàng)建并啟動容器,注意文件運行前不能有其同名容器,還有須注意防火墻設置

如果要批量停止容器并清除容器,可以使用down命令
docker-compose -f mysql-redis.yml down
如果要重新構建容器,可以使用--build選項
docker-compose -f mysql-redis.yml up --build -d
啟動好后,查看Docker容器狀態(tài):
docker ps -a | grep -E "mysql|redis"

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容