這篇文章主要講解了“Docker如何獲取MySQL鏡像”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Docker如何獲取MySQL鏡像”吧!
10年積累的成都網(wǎng)站制作、網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有蘭西免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
本節(jié)我們以運行
MySQL
實例為例,介紹基礎(chǔ)使用。
使用 docker --help 查看支持的所有命令 |
首先我們從hub.docker.com
上獲取MySQL
鏡像
這里有兩種方式,一是使用 search
命令:
root@ubuntu:~# docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relati... 1253 [OK] mariadb MariaDB is a community-developed fork of M... 280 [OK] mysql/mysql-server Optimized MySQL Server Docker images. Crea... 58 [OK] centurylink/mysql Image containing mysql. Optimized to be li... 29 [OK] ...
另外我們也可以在網(wǎng)頁上查詢更詳細的說明:
STARS 表示收藏的數(shù)量,PULLS 表示下載的數(shù)量,OFFICIAL 表示是官方鏡像(此處表示是否是MySQL官方發(fā)布) |
我們下載第一個官方的鏡像
root@ubuntu:~# docker pull mysql Pulling repository mysql 196db1908492: Download complete 575489a51992: Download complete ... Status: Downloaded newer image for mysql:latest
Docker鏡像的命名格式 <用戶名,官方鏡像不需要/>鏡像名稱版本號> |
查看本機的所有鏡像
root@ubuntu:~# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE mysql 5.7 196db1908492 6 days ago 359.8 MB mysql 5.7.9 196db1908492 6 days ago 359.8 MB mysql latest 196db1908492 6 days ago 359.8 MB ...
運行MySQL
鏡像
root@ubuntu:~# docker run --name app1-db -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 2dee953f85d697ffcb78ac795f06e1a22731ae373b154178ea6220ce9b9c6e04
--name 指定容器名稱,-e 指定特殊的一些變量,-d 表示后臺運行(服務(wù)化) |
查看本機的所有在運行容器
root@ubuntu:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2dee953f85d6 mysql:5 "/entrypoint.sh mysq 6 seconds ago Up 5 seconds 3306/tcp app1-db
docker ps -a 可以查看所有容器(包含沒有運行的) |
然后呢,怎么連接?我們需要一個IP和端口,但上面的運行并沒有對外暴露端口,所以我們要重新運行一個容器
Docker目前(v1.7)還不支持為容器綁定端口,如有此需求請查看如何為運行中的容器增加訪問端口 |
我們先刪除剛才的容器
root@ubuntu:~# docker rm -f app1-db app1-db
-f 表示強制刪除運行中的容器 |
這會刪除容器中的所有數(shù)據(jù)。不科學(xué)呀?那我想刪除容器時保留某些數(shù)據(jù)(如這里的數(shù)據(jù)庫文件)怎么辦?我們往下看: |
重新運行MySQL
鏡像
root@ubuntu:~# docker run --name app1-db -e MYSQL_ROOT_PASSWORD=123456 -d -p 3308:3306 -v /opt/mysql_data:/var/lib/mysql mysql:5.7 1add96f289a1b8744500a4a6709af6e2e0628b97797e8470be75efe67e2005f4
-p 表示將外部訪問的3308端口映射到容器的3306端口,由于MySQL 鏡像默認允許對外開放3306端口(我為什么知道?看它的dockerfile ,后面會有說明),所以也可以直接用-P ,這樣的話外部訪問3306也被映射到容器的3306端口上 |
-v 參數(shù)可以宿主機的目錄映射到將容器內(nèi)目錄,上例-v /opt/mysql_data:/var/lib/mysql 會將宿主機/opt/mysql_data 映射到容器/var/lib/mysql (已知此目錄為MySQL的數(shù)據(jù)目錄),這樣可以保證容器刪除時對應(yīng)目錄的數(shù)據(jù)不被刪除(因為這個目錄是宿主機上的),這點很重要,實際使用中幾乎所有容器都要做此映射! |
有了端口之后那IP呢?IP實際上就是你docker宿主機的IP
Docker的訪問機制簡單說明:Docker所有的對外服務(wù)統(tǒng)一使用宿主機IP+特定端口 ,當一個請求發(fā)起時會經(jīng)由宿主面的iptables根據(jù)容器創(chuàng)建時的端口規(guī)則轉(zhuǎn)發(fā)到對應(yīng)的容器處理。 |
好了,現(xiàn)在我們做個連接測試,通過
當然我們也可以對容器做停止/運行/重啟
操作:
root@ubuntu:~# docker stop app1-db app1-db root@ubuntu:~# docker start app1-db app1-db root@ubuntu:~# docker restart app1-db app1-db
感謝各位的閱讀,以上就是“Docker如何獲取MySQL鏡像”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Docker如何獲取MySQL鏡像這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!