方式1是對官網安裝步驟的翻譯
Mac OS X用戶需要使用Docker Toolbox安裝,其中docker toolbox 包含了如下組件
因為docker引擎守護進程采取了linux特殊化的內核優點,你不需要在os x 本地運行docker引擎。你需要使用docker machine 命令,它將在你的機器上創建並附屬一個小型linux虛擬機,是一個專屬你和你的mac的,支配docker引擎的虛擬機。
檢查你的mac版本 ,你的mac必須是OS X 10.8 “Mountain Lion”以上才能運行docker(點擊查看北本機,查看版本)。
安裝Docker Toolbox
缺省二進制庫將安裝在/usr/local/bin,可以服務所有用戶,此時不要改變任何的默認配置。
最後會出現QuickStart 兩種docker啟動方式,忽略它們,點擊繼續。<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMyBpZD0="第三步">第三步
驗證安裝
打開Launchpad,運行Docker Quickstart Terminal.
稍後,會自動進行一些默認的配置
輸入 docker run hello-world
如果成功的話,終端會出現類似下面的內容
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
535020c3e8ad: Pull complete
af340544ed62: Pull complete
Digest: sha256:a68868bfe696c00866942e8f5ca39e3e31b79c1e50feaee4ce5e28df2f051d5c
Status: Downloaded newer image for hello-world:latest
Hello from Docker.
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker Engine CLI client contacted the Docker Engine daemon.
2. The Docker Engine daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker Engine daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker Engine daemon streamed that output to the Docker Engine CLI client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com
For more examples and ideas, visit:
https://docs.docker.com/userguide/
此時已經安裝成功了,如果出現錯誤請查看https://docs.docker.com/faqs/troubleshoot/
mac docker運行
創建或啟動一個虛擬機 在虛擬機轉換你的環境 使用docker創建,加載,管理容器
創建出的虛擬機,包含配置,可以重復使用,你可以使用Docker Quickstart Terminal 或者shell配置
我們使用shell
1.創建我們的docker 虛擬機
$ docker-machine create --driver virtualbox cy
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env default
此時會創建一個叫cy的虛擬機,在~/.docker/machine/machines/cy 目錄裡會創建一個配置目錄。
你只需要一條創建命令,你就可以使用docker-machine的start, stop, query, manage。
2.列出我們的docker 虛擬機
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
cy * virtualbox Running tcp://...
方式2 : brew install boot2docker
boot2docker配置
boot2docker init 初始化
以上命令只需要執行一次即可,它創建了Docker運行所需要的虛擬機環境。以後運行的時候,需要先開啟docker虛擬機
boot2docker start
這樣就啟動了Docker的虛擬機環境,使用命令boot2docker shellinit查看Docker客戶端的環境變量
$ 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命令設置環境變量,也可以使用下面的方法自動設置
$ eval "$(boot2docker shellinit)"
到此為止,boot2docker已經運行,並且docker的客戶端環境已經建立,要驗證是否成功,運行下面的命令
$ 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:
如果在執行docker命令的時候出現類似如下錯誤 dial unix /var/run/docker.sock: no such file or directory 是因為沒有設置正確的環境變量導致的,執行命令 eval “$(boot2docker shellinit)” 重新設置環境變量即可。
基本操作
在DOCKER_HOST上啟動一個Nginx容器
$ docker run -d -P --name web nginx
上述命令中,docker run命令啟動一個容器運行,然後退出,-d選項指定該容器docker run命令執行完成後在後台運行。-P選項將容器開放的端口暴露給宿主機,這樣我們就可以訪問它們了。
要查看當前運行了哪些容器,使用docker ps命令
$ 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