20181231 假期闲来无事,整理一下 docker mysql 学习经历
1 、下载安装 docker-ce官网
https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1
安装 docker-ce
sudo apt-get install docker-ce
2、Docker 理解1)、每一个 Docker container (容器)就是一个特定应用程序,启动后就是一个特定进程
2)、一个容器就是一项服务,每一个 mysql 容器就可以提供一个 mysql 服务和若干实例
3)、这里特意安装 2 个不同版本,宿主机自己也已经安装过 LNMP ,用于对比学习
3、下载、安装、运行 mysql 容器1)、查找 mysql 镜像
docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 7585 [OK]
mariadb MariaDB is a community-developed fork of MyS… 2460 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 569 [OK]
zabbix/zabbix-server-mysql Zabbix Server with MySQL database support 155 [OK]
hypriot/rpi-mysql RPi-compatible Docker Image with Mysql 102
zabbix/zabbix-web-nginx-mysql Zabbix frontend based on Nginx web-server wi… 82 [OK]
centurylink/mysql Image containing mysql. Optimized to be link… 59 [OK]
....
2)、下载安装 mysql 最新版
sudo docker pull mysql
3)、下载安装 mysql 5.6
sudo docker pull mysql:5.6
4)、docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.6 27e29668a08a 47 hours ago 256MB
mysql/mysql-server latest a02eab9e2434 2 months ago 276MB
hello-world latest 4ab4c602aa5e 3 months ago 1.84kB
5)、运行 mysql/mysql-server 容器
sudo docker run --name mysql56 -e MYSQL_ROOT_PASSWORD=123456 -p 3309:3306 -d mysql:5.6
参数说明:
--name mysql
-e MYSQL_ROOT_PASSWORD=123456
-p 3308:3306
6)、运行 mysql 5.6 容器
sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3309:3306 -d mysql/mysql-server
参数说明:
同上
7)、查看容器是否启动、 docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
88c2aaa078d9 mysql:5.6 "docker-entrypoint.s…" 6 seconds ago Up 4 seconds 0.0.0.0:3309->3306/tcp mysql56
f53d369601e4 mysql/mysql-server "/entrypoint.sh mysq…" 3 minutes ago Up 3 minutes (healthy) 33060/tcp, 0.0.0.0:3308->3306/tcp mysql
8)、查看容器端口
docker port mysql
3306/tcp -> 0.0.0.0:3308
容器的 3306 端口映射到宿主机的 3308 端口
docker port mysql56
3306/tcp -> 0.0.0.0:3309
9)、查看容器 IP
docker inspect mysql56
...
"IPAddress": "172.17.0.2",
...
docker inspect mysql
...
"IPAddress": "172.17.0.3",
...
** 以下连接测试 h 也可以使用容器的 IP
** 容器 IP 是动态的,每一次不一定一样
4 、连接 容器的 mysql 测试浏览器测试放到下一步:安装 phpmyadmin 的时候在进行
这里直接在命令行测试
** 注意端口号是大写 P ,小写p指的是密码
1)、连接宿主机自己的的 mysql(以下指令是等效的)
mysql -uroot -p123456
mysql -P3306 -uroot -p123456
mysql -h127.0.0.1 -P3306 -uroot -p123456
mysql -hlocalhost -P3306 -uroot -p123456
查看版本号
mysql> select version();
+-------------------------+
| version() |
+-------------------------+
| 5.7.24-0ubuntu0.18.04.1 |
+-------------------------+
1 row in set (0.00 sec)
退出
mysql> quit
2)、连接容器 mysql 的 mysql (容器名字没有取好,应该也带上一个版本号,例如:mysql57)
mysql -P3308 -u root -p123456 (这个不对!还是连接的宿主机的mysql)
mysql -h127.0.0.1 -P3308 -uroot -p123456
mysql -hlocalhost -P3308 -uroot -p123456 (这个不对!还是连接的宿主机的mysql)
查看版本号
mysql> select version();
+-------------------------+
| version() |
+-------------------------+
| 5.7.24-0ubuntu0.18.04.1 |
+-------------------------+
1 row in set (0.00 sec)
3)、连接容器 mysql56 的 mysql
mysql -P3309 -u root -p123456(这个不对!还是连接的宿主机的mysql)
mysql -h127.0.0.1 -P3309 -uroot -p123456
mysql -hlocalhost -P3309 -uroot -p123456 (这个不对!还是连接的宿主机的mysql)
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.42 |
+-----------+
1 row in set (0.00 sec)
5、进入容器测试** 这里只列出容器 mysql56
docker exec -it mysql56 bash
root@88c2aaa078d9:/# ls
bin boot devdocker-entrypoint-initdb.d entrypoint.sh etchome lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@88c2aaa078d9:/# mysql -V
mysql Ver 14.14 Distrib 5.6.42, for Linux (x86_64) using EditLine wrapper
root@88c2aaa078d9:/# apt update
进入 mysql
root@88c2aaa078d9:/# mysql -uroot -p123456
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.42 MySQL Community Server (GPL)
查询版本号
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.42 |
+-----------+
1 row in set (0.00 sec)
6、phpmyadmin 测试待继续
本文详述了如何在Ubuntu上安装Docker CE,并通过Docker下载、安装及运行不同版本的MySQL容器。作者创建了两个MySQL容器,分别运行最新版和5.6版,并展示了如何检查容器状态、端口映射、IP地址以及连接测试。此外,还介绍了如何通过命令行进入容器内部进行进一步操作。
2155

被折叠的 条评论
为什么被折叠?



