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学习三的主要内容,如果未能解决你的问题,请参考以下文章