(4)Dockerfile與Docker私有倉庫
阿新 • • 發佈:2018-12-13
目錄:
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