CentOS 安裝Docker 並部署配置MySql


先安裝Docker

卸載之前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
使用Repository安裝
  • 安裝之前需要安裝 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
安裝Docker CE
  • 安裝最新版  $ 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>

如無特殊要求安裝最新版即可

配置DockerHub 鏡像拉取地址
 
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>,請到容器鏡像服務控制台查看

安裝MySQL
  • 啟動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

  • 至此,安裝運行就結束了。

配置MySQL中文編碼

進入容器

 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完成

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM