Docker 入門筆記

Docker 能夠理解爲一個輕量化的虛擬機, 啓動速度快,自己佔的資源小mysql

 


[重要], 容器裏是不能保存數據的,容器只要一中止, 全部的數據都會丟失,因此若是重要的數據, 都須要經過配製,把數據保存在 host 機器上。
根據 Docker 內的文件系統設計狀況。Docker 鏡像被存儲在一系列的只讀層。當咱們開啓一個容器,Docker 讀取只讀鏡像並添加一個讀寫層在頂部。
若是正在運行的容器修改了現有的文件,該文件將被拷貝出底層的只讀層到最頂層的讀寫層。在讀寫層中的舊版本文件隱藏於該文件之下,但並無被不破壞 - 它仍然存在於鏡像如下。
當Docker的容器被刪除,而後從新啓動鏡像時,將開啓一個沒有任何更改的新的容器 - 這些更改會丟失, 此只讀層及在頂部的讀寫層的組合被Docker稱爲Union File System(聯合文件系統)nginx

 

官方鏡像網站: hub.docker.com
官方網站在國外, 下載鏡像的時候,可能會比較慢, 使用 阿里雲加速器, 須要申請纔可使用。git

 

經常使用命令

docker -v
查看 docker 的當前版本github

docker pull [imageName]
從倉庫裏下載一個指定的鏡像名稱到本地web

docker run
這個是建立一個容器,並啓動, 能夠經過 --name 參數指定容器的名稱,
-d 參數, 讓容器在後臺運行, 不加此參數, 命令行將一直處於工做狀態,不參進行其餘操做sql

docker start [container name]
運行一個已經存在的容器, container name 就是經過 docker run 命令建立的容器docker

docker restart [container name]
重啓一個容器數據庫

docker stop [container name]
中止一個正在運行的容器windows

docker stop $(docker ps -q)
中止全部正在運行的容器bash

docker diff [container name]
查看容器相對鏡像修改了哪些文件

docker rm [container name]
刪除一個已經存在的容器, 若是容器正在運行,則刪除失敗

docker inspect [container name]
查看容器的詳細信息

docker ps -a
列表全部容器, 若是不指定參數 -a, 則只會列表正在運行的容器

docker images
列表全部的鏡像

docker rmi [image name]
從本地刪除一個指定的鏡像

數據卷(Volumn)

有些狀況下, 容器裏的應用須要保存數據,如數據庫應用,數據庫裏的內容是須要保存起來,這個時候, 須要把主機中的某個目錄映射到容器中去,使用 -v 參數,如 MYSQL, 經過 使用 -v 參數, 爲容器映射一個目錄到 host 上來: docker run -d -p 3306:3306 -v /my/own/datadir:/var/lib/mysql mysql
官方提供的 mysql 鏡像, 默認把數據文件放在了 /var/lib/mysql 目錄,這樣就把容器中的數據保存到主機上來了。
在 windows 裏, 使用 /d/own/datadir 或 d:/own/datadir 均可以。

 

進入容器操做

容器在運行這後, 若是咱們須要修改或查看容器中的內容,須要進行入容器中,
有四種方法:
一、docker attach containerid, 這種方法試了, 沒效果
二、經過 ssh 鏈接到容器中去, 可是好像說不推薦使用這種方式
三、nsenter 工具, https://github.com/jpetazzo/nsenter, 沒用過
四、使用 docker exe -it containerid bash 這樣最簡單了, 執行後當前命令行工具就切換到了容器內部,能夠在這裏執行相關的命令,最後使用 exit 退出。

 

容器互聯

當一個主機上有兩個容器, 一個放 web 應用, 一個放數據庫應用,那麼 web 應用怎麼訪問另外一個容器中的數據庫呢? 經過 --link 參數來設置
docker run -d --name web --link db:dbserver nginx

--link 參數的格式爲 --link name:alias,其中 name 是要連接的容器的名稱,alias 是這個鏈接的別名。 經過這樣處理後, web 應用鏈接數據庫字符串的 server 就是 dbserver 了。

 

其餘相關資料

https://www.jianshu.com/p/cf6e7248b6c7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

相關文章
相關標籤/搜索