如果還沒安裝docker,可查看Centos7下安裝Docker(詳細安裝教程)
1、查找 docker 鏡像:docker search mysql
[root@izwz9e6rwf3jav5u8udbfmz ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 8652 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3009 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 641 [OK]
percona Percona Server is a fork of the MySQL relati… 451 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 63
centurylink/mysql Image containing mysql. Optimized to be link… 61 [OK]
mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 52
deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r… 41 [OK]
tutum/mysql Base docker image to run a MySQL database se… 34
bitnami/mysql Bitnami MySQL Docker Image 34 [OK]
schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 28 [OK]
prom/mysqld-exporter 23 [OK]
linuxserver/mysql A Mysql container, brought to you by LinuxSe… 21
centos/mysql-56-centos7 MySQL 5.6 SQL database server 16
2、拉取 docker 鏡像:docker pull mysql:5.7
[root@izwz9e6rwf3jav5u8udbfmz ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
8f91359f1fff: Pull complete
6bbb1c853362: Pull complete
e6e554c0af6f: Pull complete
f391c1a77330: Pull complete
414a8a88eabc: Pull complete
fee78658f4dd: Pull complete
9568f6bff01b: Pull complete
76041efb6f83: Pull complete
ea54dbd83183: Pull complete
566857d8f022: Pull complete
01c09495c6e7: Pull complete
Digest: sha256:f7985e36c668bb862a0e506f4ef9acdd1254cdf690469816f99633898895f7fa
Status: Downloaded newer image for mysql:5.7
3、用 docker images 命令查看鏡像
[root@izwz9e6rwf3jav5u8udbfmz ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 383867b75fd2 2 weeks ago 373MB
最新官方MySQL(5.7.19)的docker鏡像在創建時映射的配置文件目錄有所不同,在此記錄並分享給大家:
MySQL(5.7.19)的默認配置文件是 /etc/mysql/my.cnf 文件。如果想要自定義配置,建議向 /etc/mysql/conf.d 目錄中創建 .cnf 文件。新建的文件可以任意起名,只要保證後綴名是 cnf 即可。新建的文件中的配置項可以覆蓋 /etc/mysql/my.cnf 中的配置項。
具體操作:首先需要創建將要映射到容器中的目錄以及.cnf文件,然後再創建容器
[root@izwz9e6rwf3jav5u8udbfmz ~]# cd /opt/
[root@izwz9e6rwf3jav5u8udbfmz opt]# mkdir -p docker_v/mysql/conf
[root@izwz9e6rwf3jav5u8udbfmz opt]# cd docker_v/mysql/conf/
[root@izwz9e6rwf3jav5u8udbfmz conf]# touch my.cnf
4、啓動容器,運行鏡像
備註:此語句爲創建數據庫,執行一次就可以。
[root@izwz9e6rwf3jav5u8udbfmz conf]# docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
afe27881f7a3a648aabdc6efc309d34d899de4f0b6985e2a2a4b5b728bce2c6e
5、查看正在運行的鏡像
[root@izwz9e6rwf3jav5u8udbfmz conf]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
afe27881f7a3 mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
停用mysql: docker stop mysql
啓用mysql: docker start mysql
6.連接 賬號root密碼123456
用Navicat連接
其他
docker run
-d 標識是讓 docker 容器在後臺運行。
-p 標識通知 Docker 將容器內部使用的網絡端口映射到我們使用的主機上。
–name 定義一個容器的名字,如果在執行docker run時沒有指定Name,那麼deamon會自動生成一個隨機數字符串當做UUID。
-e 設置環境變量,或者覆蓋已存在的環境變量。
例如:docker run –name mysql -p 3306:3306 -e
MYSQL_ROOT_PASSWORD=password -dmysql/mysql-server:latest
含義:容器的名字爲mysql,將容器的3306端口映射到本機的3306端口,mysql數據庫的密碼爲password
,運行的鏡像爲mysql/mysql-server:latest