Docker ToolBox 安裝
1、首先,安裝Docker ToolBox,其中包含了Docker三劍客: docker , docker-machine 和 docker-compose .
安裝完成之后包含了以上命令,並且會安裝Oracle的Vm軟件VirtualBox,Docker容器的主機將會運行在其中.
創建Docker虛擬機主機
安裝完之后,有默認的鏡像文件 C:\Program Files\Docker Toolbox\boot2docker.iso,將其拷貝至自己用戶名下默認目錄 C:\Users\Benjamin\.docker\machine\cache\, docker-machine默認使用這個目錄來創建虛擬主機.有些情況下,boot2docker.iso顯示是一個壓縮包,也可以直接拷貝使用。
2、打開Docker Toolbox安裝終端 Docker Quickstart Terminal ,首次運行會自動創建虛擬主機, 如未自動創建成功可以執行以下命令來創建默認的虛擬主機:
docker-machine rm default docker-machine create -d virtualbox default
等待虛擬機創建完成(可以使用VirtualBox來查看虛擬機的狀態).
3、調整虛擬主機相關配置
Docker虛擬主機創建完畢之后,還需要配置一些參數才能正常使用.
以下幾項是需要登陸到虛擬機中進行調整的內容,登陸方式為:
docker-machine ssh default
如果不想使用 Docker Quickstart Terminal , 可以在登陸之后調整 docker 用戶的密碼 ,然后就可以使用一般的ssh客戶端,如xShell等來登陸虛擬主機.
sudo passwd docker
本地鏡像設置
修改 daemon.json (如果沒有則創建一個新的):
sudo vi /etc/docker/daemon.json
修改配置為:
{ "insecure-registries" : ["xxxx.com"] ,
}
也可以使用在線的阿里雲或者docker hub上的鏡像,需要配置mirror。
4、重啟 docker 使配置生效:
sudo /etc/init.d/docker restart
查看 docker info, Insecure Registries列表中應當包含 xxxxxx.com.
如果重啟失敗,可以在 /var/log/docker.log 中查看日志進行相應的調整.
配置了本地鏡像之后,即可使用本地鏡像拉取所需要的鏡像文件,如:
docker pull registry.xxxxxxxxx/python:3.6.2
TLS禁用
在Windows上使用Docker的其中一個目的是使其與PyCharm結合,形成Python代碼的解釋器,避免重復的Python解釋環境搭建的問題,同時保持Windows開發環境和部署環境所用的Python庫的一致性.
默認的docker-machine包含了TLS的認證,雖然能保一定的安全性,但是這導致PyCharm使用Docker的效率很低(目前尚未找到解決版本),因此,我們只能使用不使用TLS認證的docker.
登陸到虛擬主機中,調整 DOCKER_TLS 環境變量:
sudo vi /var/lib/boot2docker/profile
將 DOCKER_TLS 設置為 no :
DOCKER_TLS=no
此項在關機后會失效,開機的時候注意設置
修改完成后重啟 docker.
注意: 禁用了TLS 后 docker-machine 不再能獲取到對應的信息了.
這時候要繼續使用docker命令,需要調整環境變量,
環境變量調整后 docker 命令又可以繼續使用了.
虛擬主機共享目錄
默認的Docker虛擬主機自動創建了一個用戶目錄的共享文件夾,如果沒有的話需要自己創建.
打開 VirtualBox 的管理工具,編輯共享文件夾:

其中 /c/User/ 是默認添加的,后面可以自己添加盤符和文件路徑
重啟虛擬主機,然后就可以在虛擬主機上看到相關目錄了:
docker-machine restart default
命令詳解:
attach 進入一個容器
build 從Dockerfile編譯
commit 提交容器
cp 從容器內復制文件到指定的路徑上
create 創建容器
diff 可以列出容器內發生變化的文件和目錄
events 從服務器拉取個人動態,可選擇時間區間
exec 進入容器
export 將指定的容器保存成 tar 歸檔文件, docker import 的逆操作。導出后導入(exported-imported))的容器會丟失所有的提交歷史,無法回滾
history 查看指定鏡像的創建歷史
images 查看鏡像列表
import 從歸檔文件(支持遠程文件)創建一個鏡像, export 的逆操作,可為導入鏡像打上標簽。導出后導入(exported-imported))的容器會丟失所有的提交歷史,無法回滾
info 顯示系統信息
inspect 查看容器底層信息
kill 結束一個正在運行的容器
load 從 tar 鏡像歸檔中載入鏡像, docker save 的逆操作。保存后再加載(saved-loaded)的鏡像不會丟失提交歷史和層,可以回滾
login 登錄Docker HUB
logout 退出Docker HUB
logs 打印出容器的標准輸出
port 映射NAT的端口
pause 暫停容器
ps 列出容器
pull 下載一個鏡像
push 將鏡像推送至遠程倉庫,默認為 Docker Hub
restart 重啟容器
rm 刪除容器
rmi 刪除鏡像
run 運行一個新容器
save 保存鏡像
search 搜索鏡像
start 啟動容器
stop 停止容器
tag 鏡像改名
top 查看容器進程
unpause 恢復暫停的容器
version 查看版本
wait 阻塞對指定容器的其它調用方法,直到容器停止后退出阻塞
-i #允許在容器進行交互
-t #分配偽tty終端
-d #在后台運行容器
-P #標示通知Docker所需的網絡端口映射從主機映射到我們的容器內
-h #指定容器的hostname
-e #設置容器的環境變量
-a #stdin 指定標准輸入輸出內容類型,可選 STDIN/STDOUT / STDERR 三項
-w #指定工作目錄
-u #指定用戶名id
-m #指定內存
--env-file=[] 從指定文件讀入環境變量
--restart=always 當容器推出時,自動重啟容器
--restart=on-failure:5 當容器推出代碼為非0時,docker會嘗試自動重啟該容器,最多重啟5次
--name 指定容器名,容器名在整個docker環境中必須唯一
--dns 指定dns
--cpuset="" 綁定容器到指定CPU運行
--net="bridge" 指定容器運行的網絡模式