用Docker來運行最新版的MySQL 以及 Docker 加速

安裝並啓動 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
發佈了415 篇原創文章 · 獲贊 106 · 訪問量 174萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章