在宿主機boot2docker中運行以下命令:
- 將宿主機的一個目錄掛在到某一個容器下:
docker run -it --rm -v /Users/garybhwang/software/docker_software/:/home/software ubuntu-web /bin/bash
那么在ubuntu-web的容器下面就會看到宿主機的某一個目錄。相當于這個目錄掛在到容器之下,兩者是同步的。
- 在mac中,需要建立一個虛擬機,這個虛擬機是boot2docker。然后基于book2docker這個宿主機,建立多個容器。容器和鏡像的關系是這樣的,每一個鏡像可以以多個容器的狀態去運行。例如,ubuntu:14.04這個鏡像,可以運行成多個容器,就像是軟件和進程之間的關系。
-
具體的關系的圖
- macos
- boot2docker
- 容器1 鏡像
- 容器2 鏡像
- 容器3 鏡像
- ... ...
- 容器n 鏡像
- boot2docker
- macos
首先從倉庫中拉取鏡像到boot2docker中,即宿主機中。(從默認倉庫中)
docker pull ubuntu:14.04
- 運行這個鏡像
docker run -it --rm -v /Users/garybhwang/software/docker_software/ ubuntu-web:/home ubuntu-web:latest
運行成功之后,進入這個鏡像相應的容器中:
容器(ubuntu-web).png
- 這時候,按住
ctrl+p+q
,退出容器(但未真正退出)。同時運行命令docker ps
查看目前宿主機中運行的所有的容器:
docker-ps.png
- 如果想要查看某一個容器的運行具體信息,運行命令
docker inspect 96502fb3463f
:
容器具體信息.png
- 如果想要查看所有的鏡像,運行命令
docker images
:
鏡像信息.png
- 再次進入某一個容器,則運行
docker ps
,找到想要再次進入的容器id,然后運行docker attach 694a24e04eb1
:
再次進入容器.png
- 進入某一個鏡像之后,安裝某些軟件,就如同在一個ubuntu中安裝一樣,首先
apt-get update
,然后apt-get install wget
:
"安裝軟件.png"
- 回想一下,進入容器有兩種方式。第一種方式為,直接運行鏡像,那么每次運行就會得到一個新的容器。第二種方式為,在容器沒有真正退出之后,attach 容器id。如果有一個容器被徹底關閉,那么就無法重新進入這個容器,那么在這個容器上安裝的所有軟件就會消失,因此,需要將這個容器提交為鏡像,保存在宿主機上(boot2docker)。運行命令
docker commit 容器ID 新的鏡像名
:
首先ctrl+p+q
容器后臺,記錄下容器的id694a24e04eb1
,
其次在宿主機中,運行docker commit 694a24e04eb1 ubuntu-test
:
導出容器到鏡像.png
查看宿主機中(boot2docker)中的所有鏡像,檢查是否多了一個叫做 ubuntu-test
的鏡像:
ubunt-test鏡像.png