网站主机推荐,品牌网站设计标准,深圳附近推广,软件开发文档国标目录
Dockerfile
构建基础镜像
基本机构
命令#xff1a;
命令解释#xff1a;
准备工作
创建镜像
上传镜像 Dockerfile Dockerfile 是一个文本格式的配置文件#xff0c; 用户可以使用 Dockerfile 来快速创建自定义的镜像#xff0c;另外#xff0c;使 用Docke…目录
Dockerfile
构建基础镜像
基本机构
命令
命令解释
准备工作
创建镜像
上传镜像 Dockerfile Dockerfile 是一个文本格式的配置文件 用户可以使用 Dockerfile 来快速创建自定义的镜像另外使 用Dockerfile 去构建镜像好比使用 pom 去构建 maven 项目一样有异曲同工之妙。 构建基础镜像 centos alpine jeanblanchard/alpine-glibc 使用这个 1. 空间大小差异 alpine 默认 5M 左右 centos 等都在 200M 左右。 2. 默认软件包差异 alpine 选用 busybox centos 等则是 bashcoreutils 几件套。 3. alpine 中国际化组件被优化掉了。 4. 还有一点 alpine 中选用的都是 “ 最简依赖 ” 这点和 archlinux 比较像举个例子 openssh 包不会自带 pam 插件于是他也就不支持 ldap 。这点我给 alpinelinux 官方提过 issue 。和 php 不一样 php 可以做成 php-pdo php-dom 的包然后动态加载共享库。 openssh 不行 “ 没带就是没写 ” 5. glibc 差异 alpine 选用 musl centos 等选用 glibc 其他的倒还好 libc 的差异对开发很重 要。 基本机构 Dockerfile 由一行行命令语句组成并且支持以 # 开头的注释行。 一般的 Dockerfile 分为四部分基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。 命令 基础镜像信息FROM 维护者信息MAINTAINER 镜像操作命令 RUN 、 ENV 、 COPY 、 ADD 、 EXPOSE 、 WORKDIR 、 ONBUILD 、 USER 、 VOLUME 等 命令解释 FROM centos MAINTAINER 2196707417qq.com WORKDIR /test cd/test ENY 环境变量 CPOY spring.jar /test CPOY和ADD的区别ADD不仅可以赋值还会默认解压 如果仅仅是把本地的文件拷贝到容器镜像中 COPY 命令是最合适不过的。其命令的格式 为 COPY src dest ADD 命令的格式和 COPY 命令相同也是 ADD src dest 区别 ADD 解压压缩文件并把它们添加到镜像中 准备工作 创建文件夹上传 jdk 的安装包 , 和在同级目录下编写 Dockerfile 文件 编写 Dockerfile 文件 示例 #1.指定基础镜像并且必须是第一条指令
FROM centos:latest
#2.指明该镜像的作者和其电子邮件
MAINTAINER xx xxqq.com
#3.在构建镜像时指定镜像的工作目录之后的命令都是基于此工作目录如果不存在则会创建目录
WORKDIR /usr/local/java
#4.一个复制命令把jdk安装文件复制到镜像中,注意jdk*.tar.gz使用的是相对路径
ADD jdk-8u221-linux-x64.tar.gz /usr/local/java/
#5.配置环境变量
ENV JAVA_HOME/usr/local/java/jdk1.8.0_221
ENV CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH$JAVA_HOME/bin:$PATH
#容器启动时需要执行的命令
#CMD [java,-version] 创建镜像 我们可以通过jdk和jre还有不同的操作系统centos和 jeanblanchard/alpine-glibc 构建不同大小的镜像因为镜像需要部署很多个所以镜像越小越好下面是不同版本的镜像大小也不同。 FROM centos
MAINTAINER 2196707417qq.com
WORKDIR /test
COPY spring.jar /test配置jdk环境变量FROM centos
MAINTAINER 2196707417qq.com
WORKDIR /test
COPY spring.jar /test/
ADD jdk-8u221-linux-x64.tar.gz /test
ENV JAVA_HOME/test/jdk1.8.0_221
ENV CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH$JAVA_HOME/bin:$PATH配置自动运行jar包 #CMD [java,-version]FROM centos
MAINTAINER 2196707417qq.com
WORKDIR /test
COPY spring.jar /test/
ADD jdk-8u221-linux-x64.tar.gz /test
ENV JAVA_HOME/test/jdk1.8.0_221
ENV CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH$JAVA_HOME/bin:$PATH
#CMD [java,-version]优化镜像
jdk jreFROM centos
MAINTAINER 2196707417qq.com
WORKDIR /test
COPY spring.jar /test/
ADD jre-8u391-linux-x64.tar.gz /test
ENV JAVA_HOME/test/jre1.8.0_391
ENV CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH$JAVA_HOME/bin:$PATH
#CMD [java,-version]优化操作系统 centos换jeanblanchard/alpine-glibcFROM jeanblanchard/alpine-glibc
MAINTAINER 2196707417qq.com
WORKDIR /test
COPY spring.jar /test/
ADD jre-8u391-linux-x64.tar.gz /test
ENV JAVA_HOME/test/jre1.8.0_391
ENV CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH$JAVA_HOME/bin:$PATH
#CMD [java,-version] 编写完成 Dockerfile 之后可以通过 docker build 命令来创建镜像 根据当前路径得Dockerfile 路径构建镜像
docker build -t spring:v1 .docker run -it spring:v1
处在哪个目录 \test
目录下有什么文件 spring.jar 运行镜像
docker run -itd --name s1 -p 8080:8080 spring:v5注注意最后有个点代表使用当前路径的 Dockerfile 进行构建 上传镜像 在阿里云搜索容器镜像服务创建镜像和仓库order_service 控制台登录 给镜像取个别名
docker tag 52c4827a87e1 registry.cn-hangzhou.aliyuncs.com/zking_docker/order_service:v1上传镜像到阿里云order_service仓库 docker push registry.cn-hangzhou.aliyuncs.com/zking_docker/order_service:v1删除镜像 docker rmi registry.cn-hangzhou.aliyuncs.com/zking_docker/order_service:v1下载阿里云仓库order_sercice 镜像 docker pull registry.cn-hangzhou.aliyuncs.com/zking_docker/order_service:v1