docker 系列 - Docker 安裝和Hub Mirror地址設置


======================
為什么要使用Docker?
======================= 

容器真是個好東西, (1)容器能提供隔離性; (2)容器能打包環境, 簡化部署難度; (3)容器具有很好的遷移性, 開發在不同環境中部署. (4) 容器是輕量級.

詳細講解如下:
1. docker能為應用系統提供一個很好的沙箱
比如要部署兩套Python Web系統, 一套是基於Python 2.7的, 一套是Python 3, 使用Docker可以很好地隔離兩套Python運行環境, 避免相互干擾.
2. docker 簡化了環境准備的復雜性.
比如我們需要搭建Oracle/rabbitmq/Redis/Cassandra 開發環境, 每個軟件都有自己的依賴lib, 而且不同版本的Linux, 依賴lib的版本很可能不一樣, 安裝過程都很復雜. 一旦使用 docker, 事情就簡單多了.
3. Docker 可以提供一致的運行環境
系統開發過程中經常碰到開發/測試/生產環境不一致的問題, 導致了很多問題. docker 鏡像提供除內核之外完整的運行時環境, 這就可以確保各個環境都有一致的運行環境.
4. Docker快速啟動更適合於按需擴容場景.

對於企業內部應用開發, Docker 將會改變系統交付形態. 比如我們用Python 開發了一個Web應用. 未使用Docker之前, 上線會很復雜, 需要考慮生產服務器的Python版本是否OK, 是否有必須的依賴包, 最終web應用文件的應該存在哪個路徑下. 使用 Docker 之后, 我們可以將Python解析器和依賴包, 連同我們開發的Web應用打包到一個docker鏡像中, 簡化了系統部署過程, 這點和 Spring Boot的executableJar 打包形式類似, 比Execuable jar 更進一步, docker 可以講JDK打包進去. 

 

=======================
CentOS 7 安裝 Docker
=======================
#安裝Docker
sudo yum install docker
#啟動Docker服務
sudo service docker start
#隨系統自動加載
sudo chkconfig docker on

 

=======================
Docker Toolbox 下載和安裝
=======================
Windows 下三個docker安裝包:
1. Docker for windows: 適合於window 10高級版, 使用Windows 原生的 Hyper-V 技術.
2. Docker Toolbox on Windows: 適合於Windows7和Windows10版本,使用VirtualBox VM.
3. Docker2Boot: [不推薦] 建議使用Docker Toolbox on Windows或Docker for windows.

我的工作機器是Windows 7, 所以只能使用 Docker Toolbox on Windows, Docker Toolbox 包含下面幾個組件:
1. Docker Client for Windows
2. Docker toobox 的管理工具
3. VirtualBox(版本是5)
4. git MSYS-git 命令行工具

Docker Toolbox 可以在官網下載, 或者到aliyun鏡像站點下載: https://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

最新版本的Docker Toolbox 會打包安裝 VirtualBox5, 注意我們需要使用管理員權限安裝, 在docker toolbox 安裝后, 可通過快捷方式 "Docker Quickstart Terminal" 命令行工具啟動, 該程序啟動過程中, 會自動創建VirtualBox的虛擬機(名稱為 default, 鏡像是 Boot2Docker.iso), 並通過 VirtualBox headless 工具啟動該虛擬機, 該虛擬機Linux已經准備好 docker 的運行環境.

如果Docker Quickstart Terminal運行失敗, 很可能是因為 VirtualBox5 的問題造成的. 驗證的方法是, 手動使用 VirtualBox5 GUI 打開這個 default 虛擬機, 如果報"不能為虛擬電腦 default 打開一個新任務"等錯誤, 基本可以確定是 VirtualBox5 的問題, 該問題很難解決, 最有效的方式是安裝VirtualBox 4.3.12版本, 訪問VirtualBox官網 <https://www.virtualbox.org/wiki/Downloads> 下載, 安裝目錄要和VirtualBox5一樣, 以便 Docker Quickstart Terminal 能找到新裝的 VirtualBox 4.3.12.

手動安裝 VirtualBox-4.3.12的命令行為(以管理員權限運行):
D:\softwares\VirtualBox-4.3.12-93733-Win.exe -msiparams NETWORKTYPE=NDIS6


=======================
Docker Toolbox 幾個命令
=======================
Docker toobox提供三個最主要的工具:
1. docker-machine 工具負責目標機器進行操作, 機器的創建/啟停/ssh登陸等, 雖然docker-machine工具可以ssh到受控機上, 但我還是更喜歡使用putty.
2. docker 工具負責容器級的操作, 比如pull鏡像/運行容器等.
3. docker-compose 是docker的編排工具, 可以代替 docker run shell 命令.


=======================
docker-machine 命令
=======================
1. docker-machine create 命令, 創建一個新的machine.

docker-machine create --driver virtualbox dev

創建一個基於 virtualbox 的機器, 名為 dev. 除了 virtualbox 類, 還可以是 generic 或 vmwarevsphere/AWS/Azure 等很多候選.  

docker-machine create --driver virtualbox --engine-storage-driver overlay2 test2

創建一個基於overlay2 存儲的virtualbox 機器, 名為 test2, boot2docker缺省的存儲driver為 aufs

 

2. docker-machine ls 命令: 列出所有的 machine.

docker-machine ls 

如果在create 后手工修改了vm的ip后, 將會導致認證不合法, 這樣就不能通過 docker-machine ssh 連接到該虛機, 這時候需要做的是, 重新生成證書文件. 

生成證書文件的命令為: docker-machine.exe  regenerate-certs  虛擬機名

3. docker-machine ssh 命令: 通過ssh方式 Login 到machine 或遠程執行某個命令. 

docker-machine ssh default 
docker-machine ssh default pwd 

4. docker-machine env 命令, 顯示machine的環境設置

docker-machine env default
該命令的輸出將以Windows 的批處理文件語法呈現指定虛擬機的環境配置, 可以將這些輸出在 cmd.exe 執行, 執行后, 就可以直接在 cmd.exe 中執行 docker 命令. 
如果在cmd.exe 中直接執行 docker 操作, 需要先在windows上設置一下環境變量, 這些具體方法是, 
C:\Program Files\Docker Toolbox>docker-machine env default
SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://192.168.99.100:2376
SET DOCKER_CERT_PATH=C:\Users\Administrator\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default
SET COMPOSE_CONVERT_WINDOWS_PATHS=true
REM Run this command to configure your shell:
REM @FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i

 

=======================
進一步了解 boot2docker 虛擬機
=======================
boot2docker 是 Tiny Core Linux 發行版, 專為 Docker 准備, 完全運行在內存中, 大小只有幾十M.
boot2docker 虛擬機默認的用戶名和密碼是: docker/tcuser
boot2docker 虛擬機的IP, 可以使用 docker-machine env 命令獲取
命令 sudo -i # 可免密碼切換到root 賬號.


Boot2Docker VM中多數文件比較特別, 我們即使是修改了, 重啟VM后這些文件都還原為原樣了. 但下面兩個目錄例外, 可以持久化保存.
/var/lib/boot2docker 目錄, 該目錄主要用來定制化VM的一些設置, 比如設置 docker 賬號的profile等.
/var/lib/docker 目錄, 該目錄主要用來保存docker 鏡像和容器.

/var/lib/boot2docker/profile 文件中設置網絡代理:

export HTTP_PROXY=http://ip:port
export HTTPS_PROXY=http://ip:port
mkdir -p /home/docker/data

 

 

=======================
設置Docker Hub Mirror地址
=======================
可以在pull image的時候指定docker mirror源, 也可以在docker環境中設置mirror源.

# 在pull image時設定國內mirror的方法.  
docker pull registry.docker-cn.com/star7th/showdoc

 絕大多數國內的鏡像服務商都需要注冊賬號, 推薦中科大的Mirror源 https://docker.mirrors.ustc.edu.cn.  下面是在docker 環境中設置mirror源的步驟. 

1. Docker客戶端版本1.12或以上, 設置Mirror地址的方法:
Linux下編輯文件 /etc/docker/daemon.json
Windows下編輯文件 %programdata%\docker\config\daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

2. 針對Docker客戶的版本1.11版或以下 的設置方法, 可以修改 /etc/default/docker 文件, 加入如下參數:
DOCKER_OPTS="--registry-mirror=https://docker.mirrors.ustc.edu.cn"

3. 針對 boot2docker iso, 需要修改 /var/lib/boot2docker/profile 文件, EXTRA_ARGS 參數增加 --registry-mirror 設置.
sudo -i # 免密碼切換到root 賬號
vi /var/lib/boot2docker/profile
增加 registry-mirror 的設置, 格式如下:

EXTRA_ARGS=" 
--registry-mirror=https://docker.mirrors.ustc.edu.cn
"

4. 使用 docker info 命令查看Mirror站點是否生效.


=======================
參考
=======================
https://linux.cn/article-5586-1.html


免責聲明!

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



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