使用boot2docker管理docker

在Mac上使用Docker,須要使用boot2docker創建docker運行的虛擬機宿主環境。安裝boot2docker能夠簡單的經過brew進行安裝。html

brew install boot2docker

###啓動boot2dockernginx

成功安裝以後,使用如下方式啓動dockerweb

boot2docker init

以上命令只須要執行一次便可,它建立了Docker運行所須要的虛擬機環境。之後運行的時候,須要先開啓docker虛擬機docker

boot2docker start

這樣就啓動了Docker的虛擬機環境,使用命令boot2docker shellinit查看Docker客戶端的環境變量shell

$ boot2docker shellinit
Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/key.pem
    export DOCKER_HOST=tcp://192.168.59.103:2376
    export DOCKER_CERT_PATH=/Users/mylxsw/.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1

你能夠手動的執行輸出的後面三條export命令設置環境變量,也可使用下面的方法自動設置ssh

$ eval "$(boot2docker shellinit)"

到此爲止,boot2docker已經運行,而且docker的客戶端環境已經創建,要驗證是否成功,運行下面的命令curl

$ boot2docker status
running
$ docker version
Client version: 1.3.2
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): 39fa2fa
OS/Arch (client): darwin/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.4.2
Git commit (server): 7c8fca2

使用命令boot2docker ssh:tcp

boot2docker-ssh

若是在執行docker命令的時候出現相似以下錯誤 dial unix /var/run/docker.sock: no such file or directory 是由於沒有設置正確的環境變量致使的,執行命令 eval "$(boot2docker shellinit)" 從新設置環境變量便可。url

###基本操做unix

DOCKER_HOST上啓動一個Nginx容器

$ docker run -d -P --name web nginx

上述命令中,docker run命令啓動一個容器運行,而後退出,-d選項指定該容器docker run命令執行完成後在後臺運行。-P選項將容器開放的端口暴露給宿主機,這樣咱們就能夠訪問它們了。

要查看當前運行了哪些容器,使用docker ps命令

docker-ps

查看容器開放了哪些端口,使用命令docker port

$ docker port web
443/tcp -> 0.0.0.0:32769
80/tcp -> 0.0.0.0:32768

接下來訪問127.0.0.1:32768,應該就能看到Nginx的歡迎頁面了。

在Mac下,使用boot2docker的時候,訪問127.0.0.1是不行的,由於docker的宿主機是boot2docker的虛擬機,所以須要使用虛擬機的ip訪問boot2docker ip獲取ip後訪問。

boot2docker-ip 訪問192.168.59.103:32768便可

要中止或者刪除正在運行的容器,使用下列命令

$ docker stop web
$ docker rm web

要關閉boot2docker使用命令boot2docker stop

###在Container中掛載卷

當啓動boot2docker的時候,它會在虛擬機上自動共享Mac上的/Users目錄,在Docker容器中,能夠將該目錄中的內容掛載到Docker容器中。

docker@boot2docker:~$ ll /Users/
total 0
drwxr-xr-x    1 docker   staff          374 Dec  4 08:42 Guest/
drwxrwxrwx    1 docker   staff          306 Apr 10 16:19 Shared/
drwxr-xr-x    1 docker   staff         2890 May 19 09:32 mylxsw/

在Mac的Downloads目錄中創建site/index.hml文件,以下

$ pwd
/Users/mylxsw/Downloads
$ tree
.
└── site
    └── index.html

1 directory, 1 file
$ cat site/index.html
my new site: aicode.cc

啓動docker容器

$ docker run -d -P -v $HOME/Downloads/site:/usr/share/nginx/html --name mysite nginx
3ec8c748b423b9ff30efaab6e4c88857c45831cca8a46e97950808635c2dd98d
$ docker port mysite
443/tcp -> 0.0.0.0:32770
80/tcp -> 0.0.0.0:32771
$ boot2docker ip
The VM's Host only interface IP address is: 192.168.59.103

這裏docker run-v參數指定了要掛載的卷,也可使用--volume,格式爲-v /host:/container

訪問http://192.168.59.103:32771/能夠看到輸出index.html的內容

$ curl  http://192.168.59.103:32771/
my new site: aicode.cc

參考:

相關文章
相關標籤/搜索