新手學Docker(2)熟悉Run命令

本篇概覽

在本小節裏,咱們將從Image倉庫里拉取並運行Nginx,嘗試下將本地文件和container文件相映射,Nginx相比hello-world多了些啓動參數,咱們將逐個攻破。html

準備應用

咱們在本機新建一個項目文件夾,在裏面建立咱們的靜態資源文件,隨後往index.html隨便寫點內容,執行下pwd命令獲取一下當前文件夾所在路徑。nginx

mkdir class01 && cd class01
touch index.html
pwd

獲取Nginx Image

咱們打開國內的Docker Hub鏡像站,搜索Nginx,第一個即是咱們所須要的,打開Image詳情頁,會有詳細地使用說明,咱們先使用命令行方式去運行這個Imagedocker

docker pull nginx
docker run --name my-nginx  -d -p 3000:80 nginx

命令解釋:bash

  • --name爲當前建立的container起一個好記的暱稱,默認狀況下docker會隨機分配一個暱稱spa

  • -d即Deamon,可以讓進程在後臺運行而不阻塞命令行。命令行

  • -p端口暴露,nginx一般運行在80端口,爲了可以在主機訪問container裏的nginx,因此須要進行端口暴露,格式爲:[host port]:[container port]code

這時咱們在本機訪問localhost:3000,將會看到nginx的歡迎頁。htm

掛載本機目錄進程

若是想讓nginx伺服本機的某個目錄,咱們須要加上-v命令,-v即Volume,咱們但願nginx可以以當前文件夾做爲資源目錄,這個過程稱爲掛載,經過[Host dir]:[container dir]的形式將主機的目錄覆蓋container裏面的目錄,固然b目錄原本的內容不會丟失,當咱們不選擇掛載時,其又將會生效。資源

docker ps # 顯示當前正在運行的container,咱們能夠找到剛剛建立的my-nginx
docker stop my-nginx
docker rm my-nginx # 中止並刪除my-nginx
docker run --name my-nginx -v [your pwd]:/usr/share/nginx/html:ro -d -p 3000:80 nginx

添加的[your pwd]爲最開始建立的index.html所在的文件夾,如~/coding/docker-learn/class01

命令解釋:

  • :ro意爲Read Only,對container增長只讀權限,默認爲可讀寫

咱們再次訪問localhost:3000,顯示的內容已是咱們建立的index.html了。

複用掛載的目錄

上一步咱們爲my-nginx這個container掛載了數據卷,若是咱們新的container也想用和my-nginx相同的數據卷呢?咱們可使用--volumns-from來複用數據卷地址。

docker run --name my-nginx1 --volumes-from my-nginx -d -p 3001:80 nginx

如今訪問localhost:3001即可以獲得同3000端口同樣的效果了,試試docker ps看看目前運行中的container信息吧。

相關文章
相關標籤/搜索