Docker ToolBox 安裝
一、首先,安裝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顯示是一個壓縮包,也能夠直接拷貝使用。
二、打開Docker Toolbox安裝終端 Docker Quickstart Terminal ,首次運行會自動建立虛擬主機, 如未自動建立成功能夠執行如下命令來建立默認的虛擬主機:
docker-machine rm default docker-machine create -d virtualbox default
等待虛擬機建立完成(可使用VirtualBox來查看虛擬機的狀態).
三、調整虛擬主機相關配置
Docker虛擬主機建立完畢以後,還須要配置一些參數才能正常使用.
如下幾項是須要登錄到虛擬機中進行調整的內容,登錄方式爲:
docker-machine ssh default
若是不想使用 Docker Quickstart Terminal , 能夠在登錄以後調整 docker 用戶的密碼 ,而後就可使用通常的ssh客戶端,如xShell等來登錄虛擬主機.
sudo passwd docker
docker的運行參數配置使用 daemon.json 來進行配置
本地鏡像設置
修改 daemon.json (若是沒有則建立一個新的):
sudo vi /etc/docker/daemon.json
修改配置爲:
{ "insecure-registries" : ["xxxx.com"] ,
}
也可使用在線的阿里雲或者docker hub上的鏡像,須要配置mirror。
四、重啓 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" 指定容器運行的網絡模式