歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網

mac docker

日期:2017/3/1 11:52:50   编辑:關於Linux

mac docker安裝

方式1 :官網安裝(https://docs.docker.com/mac/step_one/)

方式1是對官網安裝步驟的翻譯
Mac OS X用戶需要使用Docker Toolbox安裝,其中docker toolbox 包含了如下組件

Docker CLI client 運行docker 創建鏡像和容器 Docker Machine 可以在mac終端運行docker引擎命令 Docker Compose 運行 docker-compose 命令 Kitematic docker的圖形化組件 針對於docker命令行環境的 快速啟動預配置shell Oracle VM 虛擬機

因為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
Copyright © Linux教程網 All Rights Reserved