當前 linux 版本: centos 7.7
目錄
1、安裝 Docker
1.1、檢查內核版本,必須是3.10及以上
uname ‐r
1.2、卸載歷史
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.3、安裝相關依賴
yum install -y yum-utils
備註: yum-utils 已經包含 yum-config-manager
1.4、指定docker安裝信息源
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
1.5、安裝docker
yum install docker-ce docker-ce-cli containerd.io
1.6、啓動docker
systemctl start docker
1.7、檢查docker安裝情況
docker -v
1.8、開機啓動docker
systemctl enable docker
2、安裝 MySQL
2.1、拉取mysql
docker pull mysql:5.7
2.2、啓動mysql
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
參數說明
-p 3306:3306 將容器的 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 初始化 root 用戶的密碼
-d mysql:5.7 以守護進程方式啓動 mysql:5.7 鏡像
2.3、mysql 配置
vim /mydata/mysql/conf/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
============== 2020/05/20 添加 ==============
bug:
導入 SQL 的時候出現 Error #1055
reason:
在MySQL5.7之後,sql_mode中默認存在ONLY_FULL_GROUP_BY,SQL語句未通過ONLY_FULL_GROUP_BY語義檢查所以報錯。
ONLY_FULL_GROUP_BY:ONLY_FULL_GROUP_BY要求select語句中查詢出來的列必須是明確的(其他語句也是一樣)。
fix:
1. 在配置文件 [mysqld] 下添加
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
2. 重啓 mysql 容器。
注意: mysql爲容器的名字,不同的請更換。或使用容器ID即可。
docker restart mysql
=======================================
-
2.4、進入 mysql (optional)
dokcer exec -it mysql /bin/bash
-
2.5、登錄 mysql (optional)
mysql -u root -p
-
2.6、mysql 隨 docker 自啓動
docker update mysql --restart=always
注意:這裏的 mysql 是容器的名字,不是鏡像的名字。
3、安裝 Redis
3.1、拉取最新的redis
docker pull redis
3.2、啓動 redis
因爲容器內只有 /etc/redis/ 沒有 redis.conf 文件。系統會將主機的 /mydata/redis/conf/redis.conf 識別成目錄。使用要先在主機中創建 redis.conf 文件,再掛載到容器內。
3.2.1、創建主機目錄
mkdir -p /mydata/redis/conf
3.2.2、創建空白配置文件
touch /mydata/redis/conf/redis.conf
redis.conf (optional)
# 登錄密碼
# requirepass foobared
# aof模式
appendonly yes
3.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
參數說明
-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 制定配置文件啓動鏡像
3.4、進入 redis (optional)
docker exec -it redis redis-cli
3.5、redis隨 docker 自啓動
docker update redis --restart=always
注意:這裏的 redis 是容器的名字,不是鏡像的名字。