容器引擎(Docker)是一個開源的引擎,可以輕松的為任何應用創建一個輕量級、可移植的應用鏡像。
安裝前的準備工作
在安裝容器引擎前,請了解容器引擎的基礎知識,具體請參見。
選擇容器引擎的版本
容器引擎幾乎支持在所有操作系統上安裝,用戶可以根據需要選擇要安裝的容器引擎版本,具體請參見。
說明
?由于SWR支持容器引擎1.11.2及以上版本上傳鏡像,建議下載對應版本。
安裝容器引擎需要連接互聯網,內網服務器需要綁定彈性公網IP后才能訪問。
安裝容器引擎
你可以根據自己的操作系統選擇對應的安裝步驟:
- Linux操作系統下安裝
在Linux操作系統下,可以使用如下命令快速安裝Docker的最新穩定版本。如果您想安裝其他特定版本的Docker,可參考。
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
sudo systemctl daemon-reload
sudo systemctl restart docker
- EulerOS操作系統下安裝
在EulerOS操作系統下,安裝容器引擎的方法如下:
a. 登錄彈性云服務器。
b. 配置yum源。
如果您的機器上還沒有配置yum源,首先配置本機的yum。
c. 安裝并運行容器引擎。
i. 獲取yum源里的docker-engine包。
yum search docker-engine
ii. 使用yum install -y命令安裝上一步獲取的docker-engine包,x86架構示例:
yum install docker-engine.x86_64 -y
iii. 設置開機啟動Docker服務。
systemctl enable docker
iv. 啟動Docker。
systemctl start docker
d. 檢查安裝結果。
docker --version
回顯如下類似信息,表示容器引擎安裝成功。
Docker version 18.09.0, build 384e3e9
制作容器鏡像
本節指導您通過Dockerfile定制一個簡單的Web應用程序的容器鏡像。Dockerfile是一個文本文件,其內包含了若干指令(Instruction),每一條指令構建一層,因此每一條指令的內容,就是描述該層應當如何構建。
使用Nginx鏡像創建容器應用,在瀏覽器訪問時則會看到默認的Nginx歡迎頁面,本節以Nginx鏡像為例,修改Nginx鏡像的歡迎頁面,定制一個新的鏡像,將歡迎頁面改為“Hello, SWR!”。
步驟 1 以root用戶登錄容器引擎所在機器。
步驟 2 創建一個名為Dockerfile的文件。
mkdir mynginx
cd mynginx
touch Dockerfile
步驟 3 編輯Dockerfile。
vim Dockerfile
增加文件內容如下:
FROM nginx
RUN echo '<h1>Hello, SWR!</h1>' > /usr/share/nginx/html/index.html
Dockerfile指令介紹如下。
- FROM語句:表示使用nginx鏡像作為基礎鏡像,一個Dockerfile中FROM是必備的指令,并且必須是第一條指令。
- RUN語句:格式為RUN <命令>,表示執行echo命令,在顯示器中顯示一段“Hello, SWR!”的文字。
按“Esc”,輸入 :wq ,保存并退出。
步驟 4 使用docker build [ 選項 ] < 上下文路徑 > 構建鏡像。
docker build -t nginx:v1 .
- -t nginx:v1:指定鏡像的名稱和版本。
- . :指定Dockerfile所在目錄,鏡像構建命令將該路徑下所有的內容打包給容器引擎幫助構建鏡像。
步驟 5 執行以下命令,可查看到已成功部署的nginx鏡像,版本為v1。
docker images
制作鏡像壓縮包
本節指導您將容器鏡像制作成tar或tar.gz文件壓縮包。
步驟 1 以root用戶登錄容器引擎所在機器。
步驟 2 執行如下命令查看鏡像。
docker images
查看需要導出的鏡像及tag。
步驟 3 執行如下命令制作鏡像壓縮包。
docker save [OPTIONS] IMAGE [IMAGE...]
說明
OPTIONS:--output或-o,表示導出到文件。
壓縮包格式為:.tar或.tar.gz。
使用docker save制作鏡像壓縮包時,請用{image}:{tag},不要用image id,否則無法在swr頁面上傳。
示例:
$ docker save nginx:latest > nginx.tar
$ ls -sh nginx.tar
108M nginx.tar$ docker save php:5-apache > php.tar.gz
$ ls -sh php.tar.gz
372M php.tar.gz$ docker save --output nginx.tar nginx
$ ls -sh nginx.tar
108M nginx.tar$ docker save -o nginx-all.tar nginx # 將nginx所有版本打包
$ docker save -o nginx-latest.tar nginx:latest
導入鏡像文件
本章節將指導你通過docker load命令將鏡像壓縮包導入為一個鏡像。
執行方式有2種:
docker load < 路徑/文件名.tar
docker load --input或者-i 路徑/文件名.tar
示例:
$ docker load --input fedora.tar