Docker總結3/3---備份遷移和倉庫

相關文章
Docker總結1/3—理論篇
Docker總結2/3—常用命令和應用部署

遷移與備份

1. 容器保存爲鏡像

我們可以通過以下命令將容器保存爲鏡像

  • 基礎此鏡像創建的容器,包含鏡像中部署的靜態頁面等內容
docker commit mynginx mynginx_i

2. 鏡像備份

我們可以通過以下命令將鏡像保存爲tar 文件

docker  save -o mynginx.tar mynginx_i

3. 鏡像恢復與遷移

首先我們先刪除掉mynginx_img鏡像 然後執行此命令進行恢復

  • 一個服務器上測試,可以先刪除之前的mynginx_i鏡像(先刪除此鏡像創建的容器),再導入mynginx.tar恢復爲mynginx_i鏡像
docker load -i mynginx.tar

-i 輸入的文件

執行後再次查看鏡像,可以看到鏡像已經恢復

Dockerfile

1. 什麼是Dockerfile

Dockerfile是由一系列命令和參數構成的腳本,這些命令應用於基礎鏡像(操作系統級別的鏡像並最終創建一個新的鏡像。

  • 基礎鏡像 :例如Centos 上創建了JKD,Centos 就是JDK的基礎鏡像;JKD基礎上創建了微服務,JKD就是微服務的基礎鏡像。

Dockerfile的好處

人員 含義
開發人員 可以爲開發團隊提供一個完全一致的開發環境。
測試人員 可以直接拿開發時所構建的鏡像或者通過Dockerfile文件構建一個新的鏡像開始工作了。
運維人員 在部署時,可以實現應用的無縫移植。

2. 常用命令

命令 作用
FROM image_name:tag 定義了使用哪個基礎鏡像啓動構建流程
MAINTAINER user_name 聲明鏡像的創建者
ENV key value 設置環境變量 (可以寫多條)
RUN command 是Dockerfile的核心部分(可以寫多條)
ADD source_dir/file dest_dir/file 將宿主機的文件複製到容器內,如果是一個壓縮文件,將會在複製後自動解壓
COPY source_dir/file dest_dir/file 和ADD相似,但是如果有壓縮文件並不能解壓
WORKDIR path_dir 設置工作目錄

3. 使用腳本創建鏡像步驟

(1)創建目錄

mkdir –p /usr/local/dockerjdk8

(2)下載壓縮包

下載jdk-8u171-linux-x64.tar.gz並上傳到服務器(虛擬機)中的/usr/local/dockerjdk8(第一步創建的)目錄

mv jdk-8u171-linux-x64.tar.gz /usr/local/dockerjdk8

(3)創建文件Dockerfile vi Dockerfile

進入剛纔創建的目錄:

cd /usr/local/dockerjdk8
vi Dockerfile

進入編輯頁面,輸入命令:

#依賴鏡像名稱和ID(基礎鏡像)
FROM centos:7
#指定鏡像創建者信息
MAINTAINER Stephanie
#切換工作目錄
WORKDIR /usr
RUN mkdir  /usr/local/java
#ADD 是相對路徑jar,把java添加到容器中(上傳並自動解壓)
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/

配置java環境變量

#jdk1.8.0_171爲解壓後的名字,不清楚名字,可以先在宿主機解壓,確定名字
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

wq保存之後,可以輸入dir查看目錄內容

(4)執行命令構建鏡像

#-t:鏡像的名稱; . 指定當前目錄
docker build -t='jdk1.8' .

注意後邊的空格和點,不要省略

(5)查看鏡像是否建立完成

docker images

Docker私有倉庫

1. 私有倉庫搭建與配置

  • Docker私有倉庫其實也是一個鏡像
    (1)拉取私有倉庫鏡像
docker pull registry

(2)啓動私有倉庫容器

docker run -di --name=registry -p 5000:5000 registry

(3)打開瀏覽器測試

輸入地址 端口號:5000/v2/_catalog看到

{"repositories":[]} 

表示私有倉庫搭建成功並且內容爲空

(4)修改daemon.json

vi /etc/docker/daemon.json

添加以下內容,保存退出。

{"insecure-registries":["192.168.11.129:5000"]} 

此步用於讓 docker信任私有倉庫地址

(5)重啓docker 服務

systemctl restart docker

2. 鏡像上傳至私有倉庫

(1)標記此鏡像爲私有倉庫的鏡像

docker tag jdk1.8 192.168.11.129:5000/jdk1.8

(2)再次啓動私服容器

docker start registry

(3)上傳標記的鏡像

docker push 192.168.11.129:5000/jdk1.8
  • 其他服務器上下載鏡像需要:
    Ⅰ安裝Docker
    Ⅱ操作:(4)修改daemon.json
    Ⅲ重啓Docker服務,輸入命令docker pull 要下載鏡像的私服地址:端口號/下載鏡像名稱

總結

到這裏Docker實現鏡像備份和遷移,私有倉庫的搭建、上傳下載鏡像就完成了。更多內容可以關注Docker系列博客。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章