Mac上使用Docker如何快速啟動MySQL測試
本文主要討論使用Docker快速啟動 MySQL 測試的方法,包括Mac環(huán)境。一起看看吧!
近來業(yè)界有很多對Docker的討論,其生態(tài)系統(tǒng)發(fā)展得很快,然而,從簡單的“入門”或“引導”類的文章中能容易地找到成熟的技術,但Docker不然。我在Mac上試玩過Docker,但Mac絕對是Docker界的二等公民。當我在Giuseppe的博客上看到關于在Mac上使用新Docker beta《Docker for Mac beta and MySQL》一文時,決定自己來嘗試下。這些步驟適用于Mac(Windows也可能),亦能適配Linux環(huán)境(GA版本,Docker 1.11.1)。
首先,在Mac上注冊新的Docker測試版程序,接著從Docker中獲得下載代碼。此過程我耗時一天,但應該不久就會發(fā)布完整版。安裝完成后,我需要為常見的MySQL版本設置一些Docker容器,沙箱也就有了。方法如下:
jayj@~ [510]$ docker network create test 90005b3ffa9fef1f817ee4965e794a567404c9a8d5bf07320514e7d848d59ff9 jayj@~ [511]$ docker run --name=mysql57 --net=test -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql/mysql-server:5.7 6c80fa89610dbd5418ba474ad7d5451cd061f80a8a72ff2e718341827a08144b jayj@~ [512]$ docker run -it --rm --net=test -e MYSQL_HOST=mysql57 mysql/shell init Creating a Classic Session to root@mysql57:3306 Enter password: No default schema selected. enableXProtocol: Installing plugin mysqlx... enableXProtocol: done
一些經(jīng)驗總結:
我為我的容器創(chuàng)建了一個名為“測試”的網(wǎng)絡以共享,本質(zhì)是容器之間一個專用的私有網(wǎng)絡。我喜歡這個是因為在相關的端口是監(jiān)聽多個容器,也不必設置主機操作系統(tǒng)的端口。
我將Oracle的官方MySQL Docker容器啟動一個MySQL 5.7的鏡像,在綁定到該測試網(wǎng)絡。
我使用了MySQL /shell鏡像(來自Oracle)來初始化MySQL 5.7服務器上的mysqlx插件。需要注意的是,我并沒有輸入密碼,因為我沒有創(chuàng)建一個服務器(不安全,但它是一個沙箱)。
這個里面的Shell使用了運行后刪除的臨時容器,所以并不會破壞Docker ps-a輸出。
所以,現(xiàn)在我希望能夠使用標準的MySQL命令行或新的MySQL shell來訪問這個容器。讓它看起來很干凈,因此我添加了一些bash別名:
alias mysqlsh='docker run -it --rm --net=test mysql/shell' alias mysql='docker run -it --rm -e MYSQL_ALLOW_EMPTY_PASSWORD=yes --net=test --entrypoint="mysql" mysql/mysql-server:5.7'
這些以后,我可以直接調(diào)用他們并通過正常的命令行選項來連接我的MySQL 5.7鏡像,就像使用的是一個原生的MySQL CLI binary。從MySQL 5.7鏡像中使用MySQL CLI:
jayj@~ [524]$ mysql -h mysql57 Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 4 Server version: 5.7.12 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 schemas; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.01 sec)
使用MySQL shell:
jayj@~ [527]$ mysqlsh -h mysql57 -u root --session-type=node Creating a Node Session to root@mysql57:33060 Enter password: No default schema selected. Welcome to MySQL Shell 1.0.3 Development Preview Copyright (c) 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', 'h' or '?' for help. Currently in JavaScript mode. Use sql to switch to SQL mode and execute queries. mysql-js> sql Switching to SQL mode... Commands end with ; mysql-sql> show schemas; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql-sql>
現(xiàn)在,如果為了一些事情想要運行檢查MySQL 5.5,可以這樣做:
jayj@~ [530]$ docker run --name=mysql55 --net=test -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql/mysql-server:5.5 Unable to find image 'mysql/mysql-server:5.5' locally 5.5: Pulling from mysql/mysql-server a3ed95caeb02: Already exists ffe36b360c6d: Already exists 646f220a8b5d: Pull complete ed65e4fea7ed: Pull complete d34b408b18dd: Pull complete Digest: sha256:12f0b7025d1dc0e7b40fc6c2172106cdf73b8832f2f910ad36d65228d9e4c433 Status: Downloaded newer image for mysql/mysql-server:5.5 6691dd9d42c73f53baf2968bcca92b7f4d26f54bb01d967be475193305affd4f jayj@~ [531]$ mysql -h mysql55 Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1 Server version: 5.5.49 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 schemas; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.00 sec) 或者,Percona Server: jayj@~ [534]$ docker run --name=ps57 --net=test -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d percona/percona-server:5.7 Unable to find image 'percona/percona-server:5.7' locally 5.7: Pulling from percona/percona-server a3ed95caeb02: Pull complete a07226856d92: Pull complete eee62d87a612: Pull complete 4c6755120a98: Pull complete 10eab0da5972: Pull complete d5159a6502a4: Pull complete e595a1a01d00: Pull complete Digest: sha256:d57f0ce736f5403b1714ff8d1d6b91d5a7ee7271f30222c2bc2c5cad4b4e6950 Status: Downloaded newer image for percona/percona-server:5.7 9db503852747bc1603ab59455124663e8cedf708ac6d992cff9b43e2fbebd167 jayj@~ [537]$ mysql -h ps57 Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 2 Server version: 5.7.10-3 Percona Server (GPL), Release 3, Revision 63dafaf 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>
所以,這一切都很好,一旦鏡像被本地緩存,上下調(diào)整新的容器可以實現(xiàn)無痛和快速。所有這一切的工作都是與我的操作系統(tǒng)工作站分離的??赡苓€有其他事情可以使用這種設置,但還沒找到方法(如加載數(shù)據(jù)文件、運行代碼來連接這些容器等),但將來我會解決。
以上所述是小編給大家介紹的Mac上使用Docker快速啟動MySQL測試的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
啟動docker的時候如何把參數(shù)傳遞給docker里面的項目(推薦)
這篇文章主要介紹了啟動docker的時候如何把參數(shù)傳遞給docker里面的項目,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01Linux上使用docker啟動redis并遠程訪問的實現(xiàn)
這篇文章主要介紹了Linux上使用docker啟動redis并遠程訪問的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04docker安裝Redis高可用實現(xiàn)一主二從三哨兵
redis提供了哨兵模式保證redis實現(xiàn)高可用,本文主要介紹了docker安裝Redis高可用實現(xiàn)一主二從三哨兵,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧2024-02-02docker安裝ElasticSearch:7.8.0集群的詳細教程
這篇文章主要介紹了docker安裝ElasticSearch:7.8.0集群的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03Docker容器無法被stop or kill問題的解決方法
這篇文章主要介紹了Docker容器無法被stop or kill問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09