在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
若是在執行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 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後訪問。訪問
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
參考: