Docker 安裝 MySQL
阿新 • • 發佈:2020-09-09
Docker 安裝 MySQL
MySQL 是世界上最受歡迎的開源資料庫。憑藉其可靠性、易用性和效能,MySQL 已成為 Web 應用程式的資料庫優先選擇。
1、檢視可用的 MySQL 版本
訪問 MySQL 映象庫地址:https://hub.docker.com/_/mysql?tab=tags。
還可以通過docker search mysql命令來檢視可用版本:
1 root@xxxxxxxxxxxx:~# docker search mysql 2 NAME DESCRIPTION STARS OFFICIAL AUTOMATED3 mysql MySQL is a widely used, open-source relation… 9945 [OK] 4 mariadb MariaDB is a community-developed fork of MyS… 3638 [OK] 5 mysql/mysql-server Optimized MySQL Server Docker images. Create… 725[OK] 6 percona Percona Server is a fork of the MySQL relati… 508 [OK] 7 centos/mysql-57-centos7 MySQL 5.7 SQL database server 83 8mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 75 9 centurylink/mysql Image containing mysql. Optimized to be link… 61 [OK] 10 bitnami/mysql Bitnami MySQL Docker Image 44 [OK] 11 deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r… 41 [OK] 12 tutum/mysql Base docker image to run a MySQL database se… 35 13 prom/mysqld-exporter 31 [OK] 14 schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 30 [OK] 15 databack/mysql-backup Back up mysql databases to... anywhere! 30 16 linuxserver/mysql A Mysql container, brought to you by LinuxSe… 25 17 centos/mysql-56-centos7 MySQL 5.6 SQL database server 20 18 circleci/mysql MySQL is a widely used, open-source relation… 19 19 mysql/mysql-router MySQL Router provides transparent routing be… 16 20 arey/mysql-client Run a MySQL client from a docker container 14 [OK] 21 fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron tas… 8 [OK] 22 openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6 23 devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offici… 3 24 ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK] 25 jelastic/mysql An image of the MySQL database server mainta… 1 26 widdpim/mysql-client Dockerized MySQL Client (5.7) including Curl… 1 [OK] 27 monasca/mysql-init A minimal decoupled init container for mysql 0
2、拉取 MySQL 映象
這裡我們拉取官方的最新版本的映象:
1 $ docker pull mysql:latest
我是安裝的mysql-5.7版本,所以使用命令docker pull mysql:5.7
1 root@xxxxxxxxxxxxxxx:~# docker pull mysql:5.7 2 5.7: Pulling from library/mysql 3 bf5952930446: Pull complete 4 8254623a9871: Pull complete 5 938e3e06dac4: Pull complete 6 ea28ebf28884: Pull complete 7 f3cef38785c2: Pull complete 8 894f9792565a: Pull complete 9 1d8a57523420: Pull complete 10 5f09bf1d31c1: Pull complete 11 1591b28581e8: Pull complete 12 96ef942f7603: Pull complete 13 2e009731422e: Pull complete 14 Digest: sha256:1a83136153b238b659b0887ceb4e08275473af1eab2e67de4c22b37c5f4130cd 15 Status: Downloaded newer image for mysql:5.7 16 docker.io/library/mysql:5.7
3、檢視本地映象
使用以下命令來檢視是否已安裝了 mysql:
1 root@xxxxxxxxxx:~# docker images 2 REPOSITORY TAG IMAGE ID CREATED SIZE 3 mysql 5.7 d589ea3123e0 4 days ago 448MB
4、執行容器
安裝完成後,我們可以使用以下命令來執行 mysql 容器:
docker run -p 3306:3306 --restart=always --privileged=true --name mysql -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD="123456" -d mysql:5.7 命令說明: -p 3306:3306:將容器的3306埠對映到主機的3306埠 -e MYSQL_ROOT_PASSWORD=123456:初始化root使用者的密碼 -d: 後臺執行容器,並返回容器ID 下面這兩行配置是掛載資料 -v /opt/mysql/data:/var/lib/mysql 掛載mysql配置檔案 -v /opt/mysql/my.cnf:/etc/mysql/my.cnf my.cnf配置檔案新增以下內容: [mysqld] user=root character-set-server=utf8 default_authentication_plugin=mysql_native_password sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION lower_case_table_names=1 #忽略表名大小寫 [client] default-character-set=utf8 [mysql] default-character-set=utf8
我沒有修改配置檔案以及掛載資料,所有啟動命令是:
1 docker run -itd -p 3306:3306 -v /etc/localtime:/etc/localtime --name mysql -e MYSQL_ROOT_PASSWORD="123456" -d mysql:5.7 2 3 4 -itd 後臺執行容器 5 6 7 -v /etc/localtime:/etc/localtime 容器時間就是伺服器系統時間
5、安裝成功
通過docker ps命令檢視是否安裝成功:
1 root@xxxxxxxxxxxx:~# docker ps 2 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3 a0bfb8ab7ae7 mysql:5.7 "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql