一、Dockerfile
Dockerfile是由一系列命令和參數(shù)構(gòu)成的腳本团驱,這些命令應(yīng)用于基礎(chǔ)鏡像并最終創(chuàng)建一個(gè)新的鏡像挣输。
1刊驴、對于開發(fā)人員:可以為開發(fā)團(tuán)隊(duì)提供一個(gè)完全一致的開發(fā)環(huán)境疮薇; 2胸墙、對于測試人員:可以直接拿開發(fā)時(shí)所構(gòu)建
的鏡像或者通過Dockerfile文件構(gòu)建一個(gè)新的鏡像開始工作了; 3按咒、對于運(yùn)維人員:在部署時(shí)迟隅,可以實(shí)現(xiàn)應(yīng)用的無
縫移植。
1.常用命令
命令 | 作用 |
---|---|
FROM image_name:tag | 定義了使用哪個(gè)基礎(chǔ)鏡像啟動構(gòu)建流程 |
MAINTAINER user_name | 聲明鏡像的創(chuàng)建者 |
ENV key value | 設(shè)置環(huán)境變量 (可以寫多條) |
RUN command | 是Dockerfile的核心部分(可以寫多條) |
ADD source_dir/file dest_dir/file | 將宿主機(jī)的文件復(fù)制到容器內(nèi)励七,如果是一個(gè)壓縮文件智袭,將會在復(fù)制后自動解壓 |
COPY source_dir/file dest_dir/file | 和ADD相似,但是如果有壓縮文件并不能解壓 |
WORKDIR path_dir | 設(shè)置工作目錄 |
2.使用腳本創(chuàng)建鏡像
步驟:
(1)創(chuàng)建目錄
mkdir –p /usr/local/dockerjdk8
(2)下載jdk-8u171-linux-x64.tar.gz并上傳到服務(wù)器(虛擬機(jī))中的/usr/local/dockerjdk8目錄
(3)創(chuàng)建文件Dockerfile vi Dockerfile
#依賴鏡像名稱和ID
FROM centos:7
#指定鏡像創(chuàng)建者信息
MAINTAINER ITCAST
#切換工作目錄
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相對路徑j(luò)ar,把java添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java環(huán)境變量
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)執(zhí)行命令構(gòu)建鏡像
docker build -t='jdk1.8' .
注意后邊的空格和點(diǎn)掠抬,不要省略
(5)查看鏡像是否建立完成
docker images
二吼野、Docker私有倉庫
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":[]} 表示私有倉庫
搭建成功并且內(nèi)容為空
(4)修改daemon.json
vi /etc/docker/daemon.json
添加以下內(nèi)容,保存退出剿另。
{"insecure-registries":["192.168.184.141:5000"]}
此步用于讓 docker信任私有倉庫地址
(5)重啟docker 服務(wù)
systemctl restart docker
2.鏡像上傳至私有倉庫
(1)標(biāo)記此鏡像為私有倉庫的鏡像
docker tag jdk1.8 192.168.184.141:5000/jdk1.8
(2)再次啟動私服容器
docker start registry
(3)上傳標(biāo)記的鏡像
docker push 192.168.184.141:5000/jdk1.8