docker学习三

Posted yangk1996

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker学习三相关的知识,希望对你有一定的参考价值。

一、Dockerfile学习

  • 什么是Dockerfile

  由一系列的参数和命令构成的脚本。这些命令应用于基础镜像并最终创建一个新的镜像。基础镜像就是操作系统级别的镜像。

  • 常用命令

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

设置工作目录

  • 使用脚本创建镜像
//创建目录
mkdir –p /docker/dockerjdk8

//通过ftp上传一个jdk到dockerjdk8目录里面

//创建一个名为Dockerfile文件
vi Dockerfile

//配置Dockerfile文件
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER YANGK
#切换工作目录
WORKDIR /docker
RUN mkdir  /docker/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u131-linux-x64.tar.gz /docker/java

#配置java环境变量,如果不知道jdk解压之后的命令,可以在宿主机解压看看
ENV JAVA_HOME /docker/java/jdk1.8.0_131
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

技术图片

//执行命令构建镜像
docker build -t=‘jdk1.8‘ .
-t:指定镜像名称
.指定Dockerfile的文件夹,当前目录就有,所以这个点就指代当前目录

//查看镜像是否创建成功
docker images

技术图片 技术图片

二、构建私有仓库

  • 搭建私有仓库
//搜索镜像
docker search registry

//拉取镜像
docker pull registry

//启动私有仓库容器
docker run -di --name=registry -p 5000:5000 registry

查看私有仓库是否搭建成功,打开浏览器访问http://centosIP:5000/v2/_catalog 看到"repositories":[]表示搭建成功

技术图片

修改daemon.json,让docker信任私有仓库地址

//修改daemon.json
vi /etc/docker/daemon.json

//增加如下内容
"insecure-registries":["centosIP:5000"]

//重启docker服务
systemctl restart docker

技术图片

  • 镜像上传至私有仓库
//标记此镜像为私有仓库的镜像
docker tag  jdk1.8 centosIP:5000/jdk1.8

//再次启动私服容器
docker start registry

上传标记的镜像
docker push centosIP:5000/jdk1.8

技术图片

再次访问仓库

技术图片

 

以上是关于docker学习三的主要内容,如果未能解决你的问题,请参考以下文章

docker学习总结三

docker学习(三) 安装docker的web可视化管理工具

docker基础学习三

docker的学习三

docker学习整理三 镜像&仓库

docker 实践三:操作容器