共計(jì) 2696 個(gè)字符,預(yù)計(jì)需要花費(fèi) 7 分鐘才能閱讀完成。
這篇文章主要講解了“Docker 如何獲取 MySQL 鏡像”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Docker 如何獲取 MySQL 鏡像”吧!
6. 基礎(chǔ)
本節(jié)我們以運(yùn)行 MySQL 實(shí)例為例,介紹基礎(chǔ)使用。
使用 docker –help 查看支持的所有命令 6.1. 獲取 MySQL 鏡像
首先我們從 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)頁上查詢更詳細(xì)的說明:
STARS 表示收藏的數(shù)量,PULLS 表示下載的數(shù)量,OFFICIAL 表示是官方鏡像(此處表示是否是 MySQL 官方發(fā)布)
我們下載第一個(gè)官方的鏡像
root@ubuntu:~# docker pull mysql Pulling repository mysql 196db1908492:
Download complete 575489a51992:
Download complete
...
Status: Downloaded newer image for mysql:latest
Docker 鏡像的命名格式 用戶名,官方鏡像不需要 / 鏡像名稱 / 版本號 6.2. 查看本機(jī)鏡像
查看本機(jī)的所有鏡像
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
...
6.3. 運(yùn)行 MySQL 鏡像
運(yùn)行 MySQL 鏡像
root@ubuntu:~# docker run --name app1-db -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
2dee953f85d697ffcb78ac795f06e1a22731ae373b154178ea6220ce9b9c6e04
–name 指定容器名稱,-e 指定特殊的一些變量,-d 表示后臺運(yùn)行(服務(wù)化)6.4. 查看本機(jī)容器
查看本機(jī)的所有在運(yùn)行容器
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 可以查看所有容器(包含沒有運(yùn)行的)
然后呢,怎么連接?我們需要一個(gè) IP 和端口,但上面的運(yùn)行并沒有對外暴露端口,所以我們要重新運(yùn)行一個(gè)容器
Docker 目前(v1.7)還不支持為容器綁定端口,如有此需求請查看如何為運(yùn)行中的容器增加訪問端口 6.5. 刪除 MySQL 容器
我們先刪除剛才的容器
root@ubuntu:~# docker rm -f app1-db app1-db
-f 表示強(qiáng)制刪除運(yùn)行中的容器
這會刪除容器中的所有數(shù)據(jù)。不科學(xué)呀?那我想刪除容器時(shí)保留某些數(shù)據(jù)(如這里的數(shù)據(jù)庫文件)怎么辦?我們往下看:
重新運(yùn)行 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 鏡像默認(rèn)允許對外開放 3306 端口(我為什么知道?看它的 dockerfile,后面會有說明),所以也可以直接用 -P, 這樣的話外部訪問 3306 也被映射到容器的 3306 端口上
- v 參數(shù)可以宿主機(jī)的目錄映射到將容器內(nèi)目錄,上例 -v /opt/mysql_data:/var/lib/mysql 會將宿主機(jī) /opt/mysql_data 映射到容器 /var/lib/mysql(已知此目錄為 MySQL 的數(shù)據(jù)目錄),這樣可以保證容器刪除時(shí)對應(yīng)目錄的數(shù)據(jù)不被刪除(因?yàn)檫@個(gè)目錄是宿主機(jī)上的),這點(diǎn)很重要,實(shí)際使用中幾乎所有容器都要做此映射!
有了端口之后那 IP 呢?IP 實(shí)際上就是你 docker 宿主機(jī)的 IP
Docker 的訪問機(jī)制簡單說明:Docker 所有的對外服務(wù)統(tǒng)一使用宿主機(jī) IP+ 特定端口,當(dāng)一個(gè)請求發(fā)起時(shí)會經(jīng)由宿主面的 iptables 根據(jù)容器創(chuàng)建時(shí)的端口規(guī)則轉(zhuǎn)發(fā)到對應(yīng)的容器處理。
好了,現(xiàn)在我們做個(gè)連接測試,通過
6.6. 停止 / 運(yùn)行 / 重啟 MySQL 容器
當(dāng)然我們也可以對容器做停止 / 運(yù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 鏡像這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!