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】229. Majority Element II 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 hashmap统计次数 摩尔投票法 Moore Vo ...
- 【LeetCode】358. Rearrange String k Distance Apart 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/rearrang ...
- 【LeetCode】677. Map Sum Pairs 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典 前缀树 日期 题目地址:https://lee ...
- 小小明系列故事——游戏的烦恼(hdu 4517)
小小明系列故事--游戏的烦恼 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)To ...
- Java用sort实现对数组的降序排序
在调用Arrays.sort()对数组进行排序时,默认是升序排序的,如果想让数组降序排序,有下面两种方法: 利用Collections的reverseOrder import java.util.*; ...
- Java初学者作业——声明变量储存商品信息并进行输出
返回本章节 返回作业目录 需求说明: 声明变量存储商品信息(商品名称.商品价格和商品库存数量). 输出商品信息. 实现思路: 打印商品商品信息实现步骤: 声明变量存储商品信息.为变量赋值. 输出变量的 ...
- 云南农职《JavaScript交互式网页设计》 综合机试试卷④——蔚蓝网导航栏
一.语言和环境 实现语言:javascript.html.css. 开发环境:HBuilder. 二.题目(100分) 1.功能需求: 布局出顶部导航栏目 鼠标放到新手入门显示对象的下拉列表 鼠标移开 ...
- Kibana_X-Pack管理Elasticsearch权限
在Kibana上面配置权限,验证对Elasticsearch权限控制, 主要步骤如下: 1.创建角色 2.创建用户,并且赋予用户角色 3.用户登陆,验证没有权限 4.赋予角色权限 5.用户登陆,验证拥 ...
- javascript中逻辑运算(||,&&,!)
作为一个后端开发的程序员,一直就对JavaScript情有独钟,作为一门前后端通吃的语言,必须赞一下.而且之前很长一段时间都有在做JavaScript,一路都是和ie8死磕,磕完又找低版本的谷歌磕,坑 ...
- 一种适合于MC与SMC算法的哈希表设计
MC算法与SMC算法中的三角片焊接问题 在之前的关于MC算法与SMC算法的博文中介绍了算法的实现,文章主要围绕算法的核心问题,即三角片如何产生的问题进行了详细的描述.但由于实际应用中需要的等值面Mes ...