docker镜像制作Dockerfile
使用 Dockerfile 定制镜像
从刚才的 docker commit 的学习中,我们可以了解到,镜像的定制实际上就是 定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作 的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复 的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。
示范一:tomcat基础镜像
cat Dockerfile
FROM centos
#制定基础镜像
MAINTAINER xxxx
RUN mkdir -p /opt/app/tomcat && \
mkdir -p /opt/applog/MskyLog && \
mkdir -p /data/appdatas/cat && \
useradd jboss5 && \
chown -R jboss5:jboss5 /opt/app/tomcat && \
chown -R jboss5:jboss5 /opt/applog/MskyLog && \
chown -R jboss5:jboss5 /data/appdatas/cat
ADD apachetomcatserver.tar.gz /opt/app/tomcat
ADD jdk1.8.0_102.tar.gz /opt/app/tomcat
ENV LANG=en_US.utf8
ENV JAVA_HOME=/opt/app/tomcat/jdk1.8.0_102
ENV PATH=$JAVA_HOME/bin:$PATH
EXPOSE 8180
每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
docker build -t tomcat_test .
示范二:tomcat具体应用(以xxx为例)
cat Dockerfile
FROM tomcat_test
MAINTAINER xxxx
COPY UmeCar.war /opt/app/tomcat/apachetomcatserver/webapps
USER jboss5
ENTRYPOINT ["/opt/app/tomcat/apachetomcatserver/bin/startup.sh","run"]
docker build -t xxx .
给镜像打标签:docker tag
制作完镜像后根据自己的需要给镜像打标签(重起镜像名称),将上述制作好的镜像打一个标签,通常是以私有仓库地址为镜像名称的。
docker tag tomcat_test 10.237.79.203/test/ tomcat_test
查看镜像:
[root@docker-bulid test]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
xxxx latest 5dad1eed56ff 6 minutes ago 780MB
10.237.79.203/test/tomcat_test latest 7304d31c44fe 24 minutes ago 595MB
tomcat_test latest 7304d31c44fe 24 minutes ago 595MB
centos latest 67fa590cfc1c 8 days ago 202MB
将镜像推送到私有镜像仓库中:docker push
使用命令docker push + 镜像名字:
[root@docker-bulid test]# docker push 10.237.79.203/test/tomcat_test
The push refers to repository [10.237.79.203/test/tomcat_test]
c943684290b7: Pushed
6fdfb7ca8f55: Pushed
7b470a43942f: Pushed
877b494a9f30: Pushed
latest: digest: sha256:2bf7491d7ac220e8d6bdae7d70bc1b90f0f2c500ebb584e0b3cf24b20b8a2932 size: 1162
方法二:执行docker commit
docker commit 是基于已有的容器创建新的镜像。
docker pull xxx/xxx
docker run -itd xxx/xxx
docker ps -a
进入容器
docekr exec -it id号 /bin/bash
然后更改容器
exit退出
提交新镜像
docker commit xxxx xxx/xxxx:new
docker镜像制作Dockerfile的更多相关文章
- MySQL、MongoDB、Redis数据库Docker镜像制作
MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...
- 《Docekr入门学习篇》——Docker镜像制作
Docker镜像制作 Docker镜像的构建分为两种,一种是手动构建,一种是dockerfile(自动构建) 手动构建 基于centos镜像进行构建制作Nginx镜像 [root@rbtnode1 ~ ...
- docker研究-4 docker镜像制作
这次实验以centos镜像为基础镜像进行相关docker镜像制作. 1. 下载centos镜像 [root@localhost ~]# docker pull centosUsing default ...
- Docker 镜像制作教程:针对不同语言的精简策略
本系列文章将分为三个部分: 第一部分着重介绍多阶段构建(multi-stage builds),因为这是镜像精简之路至关重要的一环.在这部分内容中,我会解释静态链接和动态链接的区别,它们对镜像带来的影 ...
- doris 0.9.0版本docker镜像制作与使用
1. 安装docker 详情请参见本人博客 2. 编译doris 详情请参见doris官网文档 3. 在编译好的doris output文件夹下编写两个Dockerfile 3.1 Dockerfi ...
- Nginx+PHP7.3.9 Docker镜像制作
最近因项目需要制作了多个版本的php docker镜像,制作过程可谓是一波三折,因基于yum的方式安装php的方式在安装扩展插件时很不方便,不容易找到插件对应的yum源,所以PHP在docker镜像中 ...
- docker镜像制作必备技能
正文 使用过docker的都知道dockerfile,其用于定义制作镜像的流程,由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像.可参考往期文章学习:docker基础知识整理 ...
- presto-gateway 试用以及docker 镜像制作
presto-gateway 是 lyft 团队开源 的prestodb 的工具.以下是一个简单的试用,以及碰到问题的解决 还有就是docker 镜像的制作 Dockerfile 很简单,本地构建然后 ...
- 实战【docker 镜像制作与使用】
一.制作docker 镜像 使用spring boot 构建一个简单的web 项目,返回 “Hello,World ”字符串,使用 Maven 打成 jar 包,使用的Linux 环境是 Centos ...
随机推荐
- 【LeetCode】377. Combination Sum IV 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【LeetCode】421. Maximum XOR of Two Numbers in an Array 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 依次遍历每一位 前缀树 日期 题目地址:https://lee ...
- 【LeetCode】154. Find Minimum in Rotated Sorted Array II 解题报告(Python)
[LeetCode]154. Find Minimum in Rotated Sorted Array II 解题报告(Python) 标签: LeetCode 题目地址:https://leetco ...
- hdu-1593 find a way to escape(贪心,数学)
思路:两个人都要选取最优的策略. 先求外层那个人的角速度,因为他的角速度是确定的,再求内层人的当角速度和外层人一样时的对应的圆的半径r1.外层圆的半径为d; 那么如果r1>=外围圆的半径,那么肯 ...
- Arm64架构下静态编译Nginx
这段时间,我一直忙于将 Rainbond 源码构建模块移植到 Arm64/aarch64 架构中.这一源码构建模块可以将指定代码仓库中包含的源码,拉取构建成为容器镜像,在各种容器平台中运行.目前支持的 ...
- CS5211|DP转LVDS |低成本DP to LVDS Conversion 方案设计
目前市面上DP转LVDS转换--DP to LVDS Conversion 方案设计有以下: 龙迅LT8911 LT7211.普瑞PS8625.昆泰CH7511等方案,DP换LVDS转换主要是用在一些 ...
- AVD Pixel_2_API_30 is already running. lf that is not the case, delete the files at
AVD Pixel_2_API_30 is already running. lf that is not the case, delete the files at C:\Users\Adminis ...
- Spring进一步学习
目录 1.beans.xml编写 2.别名 (1)alias (2)name 3.依赖注入(DI) (1)数组注入 (2)List注入 (3)Map注入 (4)set注入 (5)Null注入 (6)p ...
- 论文翻译:2020_Attention Wave-U-Net for Acoustic Echo Cancellation
论文地址:http://www.interspeech2020.org/uploadfile/pdf/Thu-1-10-10.pdf Attention Wave-U-Net 的回声消除 摘要 提出了 ...
- 分布式抽奖秒杀系统,DDD架构设计和实现分享
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.用大项目,贯穿知识体系 写CRUD.堆API.改屎山⛰,熬多少个996也只是成为重复的螺丝 ...