先安裝Docker
卸載之前Docker
1 $ sudu yum remove docker \ 2 docker-client \ 3 docker-client-latest \ 4 docker-common \ 5 docker-latest \ 6 docker-latest-logrotate \ 7 docker-logrotate \ 8 docker-selinux \ 9 docker-engine-selinux \ 10 docker-engine
-
安裝之前需要安裝 yum-utils提供的yum-config-manager
1 $ sudo yum install -y yum-utils \ 2 device-mapper-persistent-data \ 3 lvm2
-
安裝yum-config-manager
1 $ sudo yum-config-manager \ 2 --add-repo \ 3 https://download.docker.com/linux/centos/docker-ce.repo
-
安裝最新版 $ yum install docker-ce
-
安裝指定版本
1 $ yum list docker-ce --showduplicates | sort -r 2 docker-ce.x86_64 18.09.0.ce-1.el7.centos docker-ce-stable 3 -- 然后選擇列表中指定版本 4 $ sudo yum install docker-ce-<VERSION STRING>
如無特殊要求安裝最新版即可
1 sudo mkdir -p /etc/docker 2 sudo tee /etc/docker/daemon.json <<-'EOF' 3 { 4 "registry-mirrors": ["<your accelerate address>"] 5 } 6 EOF 7 sudo systemctl daemon-reload 8 sudo systemctl restart docker
注意:文中的加速器地址<your accelerate address>
,請到容器鏡像服務控制台查看。
-
啟動Docker (上一步配置阿里雲鏡像地址后已經重啟,不需要再啟動)
CentOS 7 Docker 啟動命令 sudo systemctl restart docker
並檢查是否使用了鏡像: $ ps -ef|grep docker
registry-mirros
則成功 -
安裝MySQL(最新版本)
查看本地鏡像: $ sudo docker images 本地沒有鏡像,則 $ sudo docker search mysql 選擇STARS最多的 $ sudo docker pull mysql
-
安裝MySQL(指定版本)
$ sudo docker pull mysql:5.7
-
啟動MySQL
$ sudo docker run -p 12345:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
參數講解:
-
-p是將docker中mysql端口號3306映射成為12345端口,也可以選擇不映射,使用默認的3306
-
--name mysql: 運行服務的取名
-
-v是將主機目錄下的文件掛載到容器中路徑下(/scy是我本人用戶)
-
-e MYSQL_ROOT_PASSWORD:初始化root用戶密碼
-
-d mysql:5.7 : 后台運行mysql5.7
-
-
至此,安裝運行就結束了。
進入容器
docker exec -it mysql /bin/bash
mysql指定的–name
進入mysql
root@e34aba02c0c3:/# mysql -u root -p
查看數據庫字符集
1 mysql> SHOW VARIABLES LIKE 'characterset%'; --默認是瑞典latin1 2 mysql> SHOW VARIABLES LIKE 'collation_%'; 3 +----------------------+--------------------+ 4 | Variable_name | Value | 5 +----------------------+--------------------+ 6 | collation_connection | latin1_swedish_ci | 7 | collation_database | utf8mb4_0900_ai_ci | 8 | collation_server | utf8mb4_0900_ai_ci | 9 +----------------------+--------------------+ 10 3 rows in set (0.00 sec)
connection 就是我們通過客戶端連接的時候指定的編碼。 外部訪問數據亂碼的問題就出在這個connection連接層上
修改為utf-8
SET NAMES 'utf8';
修改配置文件
mysql 服務器配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf
修改過程中需要安裝vi 或者 vim,然而docker鏡像內鏡像源沒有速度,所以更新速度慢
可以通過 docker cp d606:/etc/mysql/mysql.conf.d/mysqld.cnf /root/mysql/mysqld.cnf 命令將文件拷貝出來修改后同樣拷貝回去的方式修改
[mysqld] 標簽下添加 character_set_server = utf8
[client] 標簽下添加 default-character-set=utf8
[mysql] 標簽下添加 default-character-set=utf8
上面的配置需要緊跟標簽,否則無法啟動mysql
配置docker開機自啟 systemctl enable docker.service
配置mysql 自動啟動 docker update --restart=always d606
至此 通過docker部署並配置MySQL完成
如果本地之前安裝過Docker,需要先卸載,如果沒有安裝過,可以跳過這一步: