Docker Machine


Docker Machine

http://dockone.io/article/1485?utm_source=tuicool&utm_medium=referral

本地安裝與使用

Docker工具箱包括專門的工具來幫助開發人員構建現代分布式應用程序。該工具箱用於Windows和Mac系統安裝使用Docker Client, Machine, Compose and Kitematic。
  • 這里我們如果要在Windows上使用Docker Machine以及Docker Client,所以需要先下載、安裝。

Docker Toolbox(Windows版)安裝指南-Windows版Docker Toolbox(Mac版)安裝指南-Mac版
  • 接下來我們以Windows為例,安裝完成后可以在桌面上看到如下三個圖標:

桌面圖標
  • 點擊運行“Docker Quickstart Terminal”來啟動一個Docker工具箱終端。

如果系統顯示一個用戶帳戶控制提示允許VirtualBox更改你的電腦。選擇Yes。接下來該終端做幾件事為你建立Docker工具箱。當它完成,終端顯示提示“$”。如下圖:

完成提示
  • 該終端運行一個特殊的bash環境而不是標准的Windows命令提示符。該bash環境正是Docker所要求的。

用鼠標點擊“$”旁邊激活該終端;
指令:

docker-machine --version

如果返回結果為

docker-machine.exe version 0.7.0, build a650a40

或與之類似的信息則說明Machine已成功安裝,否則,就需要自己下載Machine並安裝。

如果是在Windows上運行的git bash,安裝Docker Machine:
指令:

if [[ ! -d "$HOME/bin" ]]; then mkdir -p "$HOME/bin"; fi && \
curl -L https://github.com/docker/machine/releases/download/v0.7.0/docker-machine-Windows-x86_64.exe > "$HOME/bin/docker-machine.exe" && \
chmod +x "$HOME/bin/docker-machine.exe"

或者可以直接到 Docker Machine Release頁面下載安裝。如下圖:

下載安裝
如果是 OS X 或 Linux 安裝 Docker Machine:
指令:

curl -L https://github.com/docker/machine/releases/download/v0.7.0/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine && \ 
chmod +x /usr/local/bin/docker-machine

查看Docker Machine是否安裝成功。
指令:

docker-machine --version

結果:

結果
- 查看machine列表。

指令:

docker-machine ls

結果:

結果
- 創建一個machine

指令:

docker-machine create --driver virtualbox my-machine

結果:

結果
再次查看machine列表,指令:

docker-machine ls

結果:

結果
可以看到我們剛創建的“my-machine”已出現在 machine 的列表當中。
  • 查看 machine 的環境變量的配置信息。

指令:

docker-machine env my-machine

結果:

結果
- 連接到machine的shell。

指令:

eval "$(docker-machine env my-machine)"

結果:
如果沒有任何錯誤提示說明連接該 machine 成功了,因為該 machine 已安裝了docker client,所以此時你可以執行 docker 的相關操作。如查看 Docker 版本
指令:

docker --version

結果:

結果
- 用 docker run 啟動一個容器驗證前面的安裝和設置沒有問題。

指令:

docker run busybox echo Hello Docker-Machine!

結果:

結果
- 獲取指定 machine 的 ip

指令:

docker-machine ip my-machine

結果:

192.168.99.104

- 在容器中運行一個頁面服務器(Nginx)

指令:

docker run -d -p 9527:80 --name web-server nginx

結果:

結果
- 訪問上面獲取到的 ip 和映射的端口號組成的網址,這里是192.168.99.104:9527

指令:

curl $(docker-machine ip my-machine):9527

結果:

結果
通過同樣的方法你可以創建和管理很多運行着 Docker 的本地 Machine(VMs);只需運行“docker-machine create”指令;而運行“docker-machine ls”則可以顯示所有的 machine 組成的列表。
  • 啟動和停止 machines

停止指令:

docker-machine stop my-machine

啟動指令:

docker-machine start my-machine

- 不指定machine的名稱進行操作

如果不指定 machine 的名稱進行操作,則操作的 machine 默認為名稱為 default 的 machine。如下圖:

操作default
docker-machine 的指令列表:
docker-machine config
docker-machine env
docker-machine inspect 
docker-machine ip 
docker-machine kill 
docker-machine provision
docker-machine regenerate-certs
docker-machine restart
docker-machine ssh 
docker-machine start
docker-machine status
docker-machine stop
docker-machine upgrade
docker-machine url

除了名稱為 default 的 machine 之外,如果要執行上面的指令,您必須顯式地指定machine的名稱作為參數。
  • 開機啟動本地的machines

為了確保 Docker Client 自動配置在每個 shell 會話的開始,有些用戶喜歡在他們的 shell 配置文件中嵌入eval $(docker-machine env default)(例如“~/.bash_profile”文件)。然而,如果名稱為 default 的 machine 沒有運行上面方法將會失效。但是您可以配置您的系統,將名稱為 default 的 machine 設置為自動啟動。當然,你也可以通過替換下面的 default 來將其他 machine 設置為開機啟動。
下面介紹一下在OS X系統中如何配置
在“~/Library/LaunchAgents”文件夾下創建“com.docker.machine.default.plist”文件,編輯內容為:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
    <dict>
        <key>EnvironmentVariables</key>
        <dict>
            <key>PATH</key>
            <string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin</string>
        </dict>
        <key>Label</key>
        <string>com.docker.machine.default</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/bin/docker-machine</string>
            <string>start</string>
            <string>default</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>


更多信息請參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM