docker上部署MySQL的示例
容器云的概念現(xiàn)在很火,現(xiàn)在很多公司都把MySQL部署在容器上,開始今天內(nèi)容之前,我們先來看看容器云的概念吧。
1 容器云是什么?
要理解容器云的概念,首先需要了解容器,容器的介紹過程中,需要引入虛擬機來進行對比。
虛擬機:
VMware或者Virtual BoX這種虛擬機想必大家在日常工作中都有用到過,它是模擬計算機操作系統(tǒng)的軟件,你可以在windows計算機上安裝Virtual BoX軟件,然后在Virtual Box上安裝Centos或者Ubuntu這種Linux操作系統(tǒng),從而在一臺機器上運行多種類型的多個操作系統(tǒng),讓我們開發(fā)測試工作變得很方便。
虛擬機的缺點是需要消耗大量資源,每個虛擬機都需要單獨分配內(nèi)存和磁盤空間,還要消耗CPU資源以及很多底層硬件資源,如果你只是在上面用程序跑了一個hello world,那么會造成資源的大量浪費。
容器:
容器的出現(xiàn),就是為了解決這個問題,它是一種更加輕量,更加靈活的虛擬化處理技術(shù),它將一個應(yīng)用程序所需要的所有資源打包在一起,包含應(yīng)用程序的code源碼、依賴庫以及操作系統(tǒng),這讓應(yīng)用程序在任何地方都可以輕易的運行,不再受到環(huán)境的制約。
和虛擬機相比,容器更加輕量、可移植性更好、成本更低,更高效。
容器云可以理解為云上的容器技術(shù)服務(wù)。
2 docker簡介
docker是一個開源的應(yīng)用容器引擎,我們可以將它理解為一個工具,它基于go語言開發(fā),并且兼容apache2.0協(xié)議,它可以將應(yīng)用程序及其依賴(如配置文件等)打包到容器中。
除此之外,它兼容多種環(huán)境,可以被部署在在筆記本電腦,內(nèi)部服務(wù)器,公共云或私有云,可移植性很好,部署也非常靈活,解決了多種環(huán)境下的兼容性問題。
Docker 包括三個基本概念:
鏡像(Image)
容器(Container)
倉庫(Repository)

這三部分組成了Docker的整個生命周期,如上圖所示。
docker鏡像包含了文件系統(tǒng),類似于虛擬機的鏡像,它是只讀的模板。
docker容器是由鏡像實例化而來的,這和我們學(xué)習(xí)的面向?qū)ο蟮母拍钍窒嗨疲覀兛梢园宴R像想象成類,把容器想象成類經(jīng)過實例化后的對象,這樣就非常好理解鏡像和容器的關(guān)系了。
docker倉庫:類似與代碼倉庫,是Docker集中存放鏡像文件的場所
這個關(guān)系可以更加清楚的表述為:

下面我們來看docker的安裝:
1、安裝所需要的軟件包,其中yum-utils 提供了 yum-config-manager ,并且 device mapper 存儲驅(qū)動程序需要 device-mapper-persistent-data 和 lvm2
yum install-y yum-utils yum install-y device-mapper-persistent-data yum install-y lvm2
2、設(shè)置穩(wěn)定的docker倉庫
yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安裝Docker Engine-Community、
yum install docker-ce docker-ce-cli cotainerd.io
此時,Docker 安裝完默認(rèn)未啟動。并且已經(jīng)創(chuàng)建好 docker 用戶組,但該用戶組下沒有用戶。
3 使用docker安裝MySQL
使用docker安裝mysql服務(wù)非常簡單,總體步驟就下面幾步:
1、下載MySQL鏡像
可以登錄到docker的官方倉庫中尋找mysql的鏡像,網(wǎng)址如下:https://hub.docker.com/_/mysql?tab=tags
也可以直接使用docker的命令去下載MySQL鏡像
yum pull mysql:5.7.16
上面的命令表示我們要下載MySQL5.7.16的鏡像。如果我們不寫最后的版本號,則默認(rèn)拉取最新的MySQL版本鏡像
2、啟動MySQL。
拉取完畢之后,我們可以通過下面的命令來啟動MySQL實例:
docker run -itd --name mysql_5716 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=yeyazhou mysql_5716
其中:
-i:以交互模式運行容器
-t:為容器重新分配一個偽輸入終端
-d:后臺運行容器
-p 3306:3306 :映射容器服務(wù)的 3306 端口到宿主機的 3306 端口,外部主機可以直接通過 宿主機ip:3306 訪問到 MySQL 的服務(wù)。
MYSQL_ROOT_PASSWORD=yeyazhou:設(shè)置 MySQL 服務(wù) root 用戶的密碼。
3、查看容器的運行狀態(tài)
container id:容器的id號
其他信息包括容器的源鏡像,創(chuàng)建時間,狀態(tài),端口映射信息,容器名字等。
4、進入容器查看
首先我們使用命令進入容器的交互式命令行:
docker exec -it mysql_5716 /bin/bash
運行結(jié)果如下
root@8c388ccfb761:/# ls -l total 72 drwxr-xr-x 1 root root 4096 Nov 8 2016 bin drwxr-xr-x 2 root root 4096 Sep 12 2016 boot drwxr-xr-x 5 root root 360 Aug 11 11:41 dev drwxr-xr-x 2 root root 4096 Nov 8 2016 docker-entrypoint-initdb.d lrwxrwxrwx 1 root root 34 Nov 23 2016 entrypoint.sh -> usr/local/bin/docker-entrypoint.sh drwxr-xr-x 1 root root 4096 Aug 11 11:41 etc drwxr-xr-x 2 root root 4096 Sep 12 2016 home drwxr-xr-x 1 root root 4096 Nov 8 2016 lib drwxr-xr-x 2 root root 4096 Nov 4 2016 lib64 drwxr-xr-x 2 root root 4096 Nov 4 2016 media drwxr-xr-x 2 root root 4096 Nov 4 2016 mnt drwxr-xr-x 2 root root 4096 Nov 4 2016 opt dr-xr-xr-x 104 root root 0 Aug 11 11:41 proc drwx------ 1 root root 4096 Aug 11 11:49 root drwxr-xr-x 1 root root 4096 Nov 8 2016 run drwxr-xr-x 2 root root 4096 Nov 4 2016 sbin drwxr-xr-x 2 root root 4096 Nov 4 2016 srv dr-xr-xr-x 13 root root 0 Jul 19 02:47 sys drwxrwxrwt 1 root root 4096 Aug 11 11:41 tmp drwxr-xr-x 1 root root 4096 Nov 23 2016 usr drwxr-xr-x 1 root root 4096 Nov 8 2016 var
可以看到進入了容器交互式命令行。前面的root@8c388ccfb761中@符號后面的字符串就是我們的容器ID。
5、使用連接串連接MySQL
root@8c388ccfb761:/usr/local# mysql -uroot -pyeyazhou -h127.0.0.1 mysql: [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 16 Server version: 5.7.16 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.00 sec)
6、啟動另外一個MySQL容器
[root@VM-0-14-centos ~]# docker run -itd -p 3307:3306 --name mysql_5716_2 -e MYSQL_ROOT_PASSWORD=yeyazhou mysql:5.7.16 e5e0f9a14462261d01307c4d0891587acce90e4ffd33e434878f311bf98d4f22 [root@VM-0-14-centos ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e5e0f9a14462 mysql:5.7.16 "docker-entrypoint.s…" 8 seconds ago Up 6 seconds 0.0.0.0:3307->3306/tcp mysql_5716_2 8c388ccfb761 mysql:5.7.16 "docker-entrypoint.s…" 25 hours ago Up 25 hours 0.0.0.0:3306->3306/tcp mysql_5716
以上就是docker上部署MySQL的示例的詳細(xì)內(nèi)容,更多關(guān)于docker上部署MySQL的資料請關(guān)注腳本之家其它相關(guān)文章!
- Docker中部署mysql服務(wù)的方法及遇到的坑
- 詳解使用Docker部署MySQL(數(shù)據(jù)持久化)
- docker部署mysql 實現(xiàn)遠(yuǎn)程連接的示例代碼
- docker-compose基于MySQL8部署項目的實現(xiàn)
- Docker 部署 Mysql8.0的方法示例
- Docker部署Mysql集群的實現(xiàn)
- docker 部署mysql詳細(xì)過程(docker部署常見應(yīng)用)
- Docker部署MySQL8集群(一主二從)的實現(xiàn)步驟
- Docker部署MySQL并實現(xiàn)客戶端連接
- 使用Docker部署MySQL的實現(xiàn)步驟
相關(guān)文章
Docker部署Java應(yīng)用程序的實現(xiàn)步驟
本文主要介紹了Docker部署Java應(yīng)用程序的實現(xiàn)步驟,通過將Java應(yīng)用程序打包成一個Docker鏡像,可以實現(xiàn)快速部署、資源隔離和靈活擴展,感興趣的可以了解一下2024-03-03
docker-compose網(wǎng)絡(luò)設(shè)置之networks的使用
本文詳細(xì)解釋了在使用 Docker Compose時如何配置網(wǎng)絡(luò),包括創(chuàng)建、使用和問題解決等方面,介紹了如何通過docker-compose.yml文件快速編排和部署應(yīng)用服務(wù),同時解決網(wǎng)絡(luò)隔離問題,感興趣的可以了解一下2024-10-10
利用python自動生成docker nginx反向代理配置
這篇文章主要介紹了利用python自動生成docker nginx反向代理配置的相關(guān)資料,完成反向代理盡量簡單,占內(nèi)存少等,需要的朋友可以參考下2017-01-01

