1. 程式人生 > >(4)Dockerfile與Docker私有倉庫

(4)Dockerfile與Docker私有倉庫

目錄:

1、Dockerfile

1.1、什麼是Dockerfile

1.2、常用命令

1.3、使用指令碼建立映象

2、Docker私有倉庫

2.1、私有倉庫搭建與配置

2.2、映象上傳至私有倉庫


1、Dockerfile

1.1、什麼是Dockerfile

Dockerfile是由一系列命令和引數構成的指令碼,這些命令應用於基礎映象並最終建立一個新的映象。

  • 1、對於開發人員:可以為開發團隊提供一個完全一致的開發環境;
  • 2、對於測試人員:可以直接拿開發時所構建的映象或者通過Dockerfile檔案構建一個新的映象開始工作了;
  • 3、對於運維人員:在部署時,可以實現應用的無縫移植。

1.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 設定工作目錄

1.3、使用指令碼建立映象

步驟:

(1)建立目錄

mkdir –p /usr/local/dockerjdk8

(2)下載jdk-8u171-linux-x64.tar.gz並上傳到伺服器(虛擬機器)中的/usr/local/dockerjdk8目錄

(3)建立檔案Dockerfile vi Dockerfile

#依賴映象名稱和ID
FROM centos:7
#指定映象建立者資訊
MAINTAINER testing <
[email protected]
> #切換工作目錄 WORKDIR /usr RUN mkdir /usr/local/java #ADD 是相對路徑jar,把java新增到容器中 ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/ #配置java環境變數 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

(4)執行命令構建映象

docker build -t='jdk1.8' .

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

(5)檢視映象是否建立完成

docker images

2、Docker私有倉庫

2.1、私有倉庫搭建與配置

(1)拉取私有倉庫映象(此步省略)

docker pull registry

(2)啟動私有倉庫容器

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

(3)開啟瀏覽器 輸入地址http://192.168.184.141:5000/v2/_catalog看到{"repositories":[]} 表示私有倉庫搭建成功並且內容為空

(4)修改daemon.json

vi /etc/docker/daemon.json

新增以下內容,儲存退出。

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

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

(5)重啟docker 服務

systemctl restart docker

2.2、映象上傳至私有倉庫

(1)標記此映象為私有倉庫的映象

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

(2)再次啟動私服容器

docker start registry

(3)上傳標記的映象

docker push 192.168.184.141:5000/jdk1.8