1宗收、安裝Docker
保證yum最新漫拭,執(zhí)行命令,下載docker混稽。安裝參考:菜鳥教程
$ sudo yum -y install docker-io
啟動 Docker 后臺服務(wù)
$ sudo service docker start
查詢一下mysql的鏡像
$ sudo docker search mysql
下載鏡像采驻,選擇的第一個
$ sudo docker pull docker.io/mysql:5.7.18
2审胚、設(shè)置Mysql
設(shè)置外掛目錄
mysql的外置data目錄為 /opt/mysql_data_docker/data/mysql/data.
mysql的配置文件為 /opt/mysql_data_docker/data/mysql/conf/my.cnf
設(shè)置掛載本地路徑,mysql的data要放到docker容器的外面礼旅。這樣數(shù)據(jù)存在硬盤上膳叨,備份切換只需要備份文件夾即可
$ sudo mkdir -p /opt/mysql_data_docker/data/mysql/logs /opt/mysql_data_docker/data/mysql/conf /opt/mysql_data_docker/data/mysql/data
創(chuàng)建my.cnf文件,替換掉 鏡像中默認的my.cnf, 添加 lower_case_table_names=1 痘系,使得mysql大小寫不敏感
$ cd /opt/mysql_data_docker/data/mysql/conf
$ vi my.cnf
# 刪除所有內(nèi)容菲嘴,并輸入如下內(nèi)容,適用mysql5.7.18版本
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysql]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8
[client]
default-character-set = utf8
[mysqld]
lower_case_table_names=1
character_set_server=utf8
skip-name-resolve
init_connect='SET NAMES utf8'
創(chuàng)建mysql的容器汰翠,并映射 本地端口3306 訪問容器的3306 龄坪。
如果是運維,只需要執(zhí)行此步驟奴璃,修改name即可創(chuàng)建新的mysql容器
$ sudo docker run --name mysql_new -p 3306:3306 -v /opt/mysql_data_docker/data/mysql/data:/var/lib/mysql -v /opt/mysql_data_docker/data/mysql/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=1234 -d docker.io/mysql:5.7.18
查看運行的容器悉默,具體可查看docker的命令。
$ sudo docker ps
進入容器苟穆,(相當于進入運行的虛擬機中)-it 后面跟id 上圖中 2052181c9e17 就是id抄课,這里用簡寫20即可
$ sudo docker exec -it 20 /bin/bash
3、進入mysql
### 創(chuàng)建數(shù)據(jù)庫
$ mysql -uroot -p1234
$ CREATE DATABASE dbname
### 使用數(shù)據(jù)庫
$ use dbname;
4雳旅、問題:
1跟磨、為啥要映射配置文件?
容器內(nèi) 改變 配置文件攒盈,重啟后抵拘,會還原,他只是一個容器型豁,你不能改變?nèi)萜鲀?nèi)的東西僵蛛。所以需要映射進去。
2迎变、為啥要把 數(shù)據(jù)庫的文件 映射到 服務(wù)器上充尉?
一樣的原因,重啟會還原衣形。所以要把保存的數(shù)據(jù)放到 不還原的地方驼侠。