安裝並啓動 MySQL 8.0
sudo docker run --net=host --name mysql-8.0-docker -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql/mysql-server:8.0 2>&1 1> mysql-8.0-docker.screen.out
8.0.0-dmr版本貌似有bug,初次連接總是報告 ip 地址 not allowd,繞過去的方案:
docker ps --no-trunc
lxc-attach -n <container-id> -- /bin/bash
mysql
> CREATE USER 'anypig'@'%' IDENTIFIED BY '';
> exit;
exit
鏈接到 MySQL 8.0
$sudo docker run -it --link mysql-8.0-docker:mysql --rm mysql/mysql-server:8.0 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 8.0.0-dmr MySQL Community Server (GPL)
Copyright (c) 2000, 2016, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.0-dmr |
+-----------+
1 row in set (0.00 sec)
8.0是版本tag,可以修改tag來下載不同版本的docker。具體參考 MySQL Docker 文檔:https://hub.docker.com/r/mysql/mysql-server
這幾天折騰MySQL安裝
# https://xxx.mirror.aliyuncs.com 是你的阿里雲專屬加速鏈接
$docker-machine create --engine-registry-mirror=https://xxx.mirror.aliyuncs.com -d virtualbox default
Host already exists: "default"
mv ~/.docker/machine/machines/default ~/.docker/machine/machines/default-old
# 創建一臺安裝有Docker環境的Linux虛擬機,指定機器名稱爲default,同時配置Docker加速器地址。
docker-machine create --engine-registry-mirror=https://xxx.mirror.aliyuncs.com -d virtualbox default
# 查看機器的環境配置,並配置到本地。然後通過Docker客戶端訪問Docker服務。
docker-machine env default
eval "$(docker-machine env default)"
docker info
速度快得不要不要的
容器外直接訪問容器內app,部署多套MySQL,每套MySQL用自己的配置文件:
sudo docker run --net=host --name mysql-5.6 -e MYSQL_DATABASE=test -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -v /must/be/full/path//mysqls-docker/mysql-5.6.cnf:/etc/my.cnf -d mysql/mysql-server:5.6.26
sudo docker run --net=host --name mysql-5.7 -e MYSQL_DATABASE=test -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -v /must/be/full/path//mysqls-docker/mysql-5.7.cnf:/etc/my.cnf -d mysql/mysql-server:5.7.13
sudo docker run --net=host --name mysql-8.0 -e MYSQL_DATABASE=test -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -v /must/be/full/path//mysqls-docker/mysql-8.0.cnf:/etc/my.cnf -d mysql/mysql-server:8.0
sudo docker run --net=host --name mariadb-10.1 -e MYSQL_DATABASE=test -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -v /must/be/full/path//mysqls-docker/mariadb-10.1.cnf:/etc/my.cnf -d mariadb:10.1.17