查找镜像
查找镜像的方式如下:
[zxd@localhost seata]$ docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 13614 [OK]
mariadb MariaDB Server is a high performing open sou… 5197 [OK]
phpmyadmin phpMyAdmin - A web interface for MySQL and M… 713 [OK]
percona Percona Server is a fork of the MySQL relati… 597 [OK]
bitnami/mysql Bitnami MySQL Docker Image 80 [OK]
databack/mysql-backup Back up mysql databases to... anywhere! 77
linuxserver/mysql-workbench 45
ubuntu/mysql MySQL open source fast, stable, multi-thread… 40
linuxserver/mysql A Mysql container, brought to you by LinuxSe… 38
circleci/mysql MySQL is a widely used, open-source relation… 28
google/mysql MySQL server for Google Compute Engine 22 [OK]
rapidfort/mysql RapidFort optimized, hardened image for MySQL 13
bitnami/mysqld-exporter 4
ibmcom/mysql-s390x Docker image for mysql-s390x 2
vitess/mysqlctld vitess/mysqlctld 1 [OK]
newrelic/mysql-plugin New Relic Plugin for monitoring MySQL databa… 1 [OK]
hashicorp/mysql-portworx-demo 0
rapidfort/mysql-official RapidFort optimized, hardened image for MySQ… 0
docksal/mysql MySQL service images for Docksal - https://d… 0
mirantis/mysql 0
rapidfort/mysql8-ib RapidFort optimized, hardened image for MySQ… 0
cimg/mysql 0
eclipse/mysql Mysql 5.7, curl, rsync 0 [OK]
drud/mysql 0
silintl/mysql-backup-restore Simple docker image to perform mysql backups… 0 [OK]
获取镜像
docker可以使用下面的命令获取镜像:
docker pull mysql:5.7
查找镜像
可以使用下面的命令获取当前下载的所有镜像:
docker images
个人获取到的镜像内容如下:
[zxd@localhost seata]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 0256c63af7db 5 days ago 117MB
mysql 5.7 d410f4167eea 2 weeks ago 495MB
redis 3e12e2ceb68f 2 weeks ago 117MB
apache/rocketmq 4.9.4 a2a50ca263c3 5 months ago 548MB
apacherocketmq/rocketmq-dashboard latest eae6c5db5d11 14 months ago 738MB
hello-world latest feb5d9fea6a5 15 months ago 13.3kB
本地创建mysql的映射目录
在正式的启动Mysql镜像之前进行映射目录的配置。
mkdir -p /opt/mysql/data /opt/mysql/logs /opt/mysql/conf
在/root/mysql/conf
中创建 *.cnf
文件(叫什么都行)。这里以个人创建的mysql.conf
为例:
touch mysql.conf
创建容器,将数据,日志,配置文件映射到本机,注意这里的root密码为root:
docker run -p 13306:3306 --name mysql -v /opt/mysql/conf:/etc/mysql/conf.d -v /opt/mysql/logs:/logs -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
运行之后,我们执行docker ps
查看当前运行的mysql镜像:
[zxd@localhost conf]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e95a0bc7b4a4 mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 33060/tcp, 0.0.0.0:13306->3306/tcp, :::13306->3306/tcp mysql
相关运行参数如下:
-d: 后台运行容器
-p 将容器的端口映射到本机的端口
-v 将主机目录挂载到容器的目录
-e 设置参数
运行之后我们执行下面的命令查看:
[zxd@localhost conf]$ mysql -uroot -proot -P 13306
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.51 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
最后查看/opt/mysql/data
目录是否有数据文件:
[zxd@localhost conf]$ sudo ls /opt/mysql/data
auto.cnf client-cert.pem ibdata1 ibtmp1 performance_schema server-cert.pem
ca-key.pem client-key.pem ib_logfile0 mysql private_key.pem server-key.pem
ca.pem ib_buffer_pool ib_logfile1 mysql.sock public_key.pem sys
运行容器
docker run -p 13306:3306 --name mysql57 --restart=always -v /opt/mysql/conf:/etc/mysql/conf.d -v /opt/mysql/logs:/logs -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7