docker创建image方法以及常用指令介绍
例如:要在image(docker.xxx.me/xxx/onebox-dev:v0.)上做一个定制的jenkins image,
、首先在制作一个docker镜像时需要获取一个基础image
docker pull docker.xxx.me/xxx/onebox-dev:v0. # 获取镜像 、启动images
docker run -it —name -p : jenkins docker.xxx.me/xxx/onebox-dev:v0. /bin/bash 、在浏览器中打开jenkins,访问地址为:http://127.0.0.1:8080,然后根据自己需求配置jenkins,
、jenkins配置好后,查看容器的进程,根据容器id检查容器系统中变更的文件,最后提交文件变更,生成一个新的容器
docker ps #查看docker容器进程 docker diff “CONTAINER ID” #查看容器系统中变更的文件(A:新增的文件;C:修改的文件;D:删除的文件) docker commit -m “备注” 新容器名称:tag #commit时可以使用-m添加备注,要指定生成的容器的名字以及tag
docker images #查看image列表,新生成的image会显示出来
COPY:复制文件指令;
格式:COPY <源路径(本地路径)> <目标路径(image中路径)>
demo:COPY start.sh /root/start.sh
ADD:ADD和COPY的性质和格式是一样的,ADD新增了一些功能,比如ADD会自动解压被复制的压缩文件,ADD的源路径可以是 url,ADD会尝试去下载需要的资源;
格式:ADD <源路径(本地路径)> <目标路径(image中路径)>
demo:ADD start.tar.gz /root/start.sh
CMD:容器启动指令,用户可以容器运行时执行CMD命令来代替image中设置的指令;
shell格式:CMD <shell 命令>
exec格式:CMD [“可执行文件”,“参数一”,“参数二”。。。]
ENTRYPOINT:ENTRYPOINT和CMD命令一样,都是指定容器启动程序及参数,ENTRYPOINT也可以在容器运行时替换image内部的指令,需要—entrypoint来指定替换;当指定了ENTRYPOINT时,CMD将不再是可以指定的命令,只是做ENTRYPOINT的一个参数存在;如:ENTRYPOINT "<CMD>”
格式:ENTRYPOINT [“可执行文件”,“参数一”,“参数二”...]
ENV:设置环境变量;可以在容器运行和构建过程中使用
格式:ENV <key> <value>
ENV <key1>=<value1> <key2>=<value2>...
ARG:构建参数,只能在image过程中使用
格式:ARG <参数名>[=<默认值>]
EXPOSE:声明端口
格式:EXPOSE <端口号1> <端口号2>
USER:指定当前用户
格式:USER <用户名>
RUN:构建时运行指令
格式:RUN <指令1>&&<指令2>
例如,现在需要在centos7-java:v1(本地已存在)镜像的基础上使用Dockerfile制作一个image,Dockerfile如下:
FROM centos7-java:V1 ENV http_port=10001 # 创建data目录,赋予全部权限
RUN mkdir -p /data/configserver && chmod -R 777 /data/configserver # 复制编译好的包到镜像中
COPY magina.tar.gz /data/configserver/magina.tar.gz # 解压工程文件
RUN cd /data/configserver && tar -zxvf magina.tar.gz # 删除工程压缩包
RUN rm -rf /data/configserver/magina.tar.gz # 暴露服务端口号
EXPOSE ${http_port} ENTRYPOINT ["/data/configserver/start.sh"]
docker build -t image-name:tag . # 会在终端中输出构建步骤
最后使用docker images指令查看是否有新生成的image
docker创建image方法以及常用指令介绍的更多相关文章
- corosync+pacemaker的crmsh的常用指令介绍
配置crmsh的yum仓库,此仓库的RPM包有openSUSE提供,将这个network:ha-clustering:Stable.repo文件直接下载到本地并且命名为crmsh.repo wget ...
- Docker学习(三): Dockerfile指令介绍
特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...
- Git创建工作目录与常用指令
1.创建工作目录与常用指令 工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文. 日常使用只要记住下图6个命令: 2.提交管理 ...
- 新人成长之入门Vue.js常用指令介绍(一)
写在前面 作为一个刚步入职场工作的新人,对于公司中所用的技术和框架基本上不懂,只能从最基础的开始做起,进入公司接触的第一个框架就是前端框架Vue.js,几个功能做下来,觉得Vue.js首先学习起来真的 ...
- Docker 基础概念科普 和 常用操作介绍
Docker 基础概念 Docker是什么? Docker的思想来自于集装箱,集装箱解决了:在一艘大船上,可以把货物规整的摆放起来.并且各种各样的货物被集装箱标准化了,集装箱和集装箱之 ...
- Nginx学习系列四默认负载均衡轮询及Ip_hash等常用指令介绍
一.简介 Upstream模块是Nginx中一个核心模块,当客户端访问Nginx服务器的时候,Nginx会从服务器列表中选取压力小的服务器,然后分配给客户端进行访问.这个过程,Nginx通过轮询算法轮 ...
- docker基础——关于安装、常用指令以及镜像制作初体验
为什么使用docker docker就是一个轻量级的虚拟机,他解决的是服务迁移部署的时候环境配置问题.比如常见的web服务依赖于jdk.Tomcat.数据库等工具,迁移项目就需要在新的机器重新配置这些 ...
- Emit学习(2) - IL - 常用指令介绍
学习Emit必不可少的, 会使用到IL中间代码. 初见IL代码, 让我有一种汇编的感觉, 让我想起了, 大学时, 学习8051的汇编语言. 多的就不扯了, 直接进入正题, OpCodes指令集是不是有 ...
- Vue入门---安装及常用指令介绍
1.安装 BootCDN----官网https://www.bootcdn.cn/ <script src="https://cdn.bootcss.com/vue/2.6.10/vu ...
随机推荐
- Linux xargs命令详解
find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部 xargs要处理的文件如果不是在结尾,需要加上 -i这个参数 xargs常见命令参数 args:xarg ...
- 铁乐学python_Day38_多进程和multiprocess模块1
铁乐学python_Day38_多进程和multiprocess模块1 [进程] 运行中的程序就是一个进程. 所有的进程都是通过它的父进程来创建的. 因此,运行起来的python程序也是一个进程,那么 ...
- pandas高级操作总结
1.pandas中的列的分位数 # 查看列的分位数 import pandas as pd # set columns type my_df['col'] = my_df['col'].astype( ...
- 三星平板SM-T320刷机
三星 Galaxy Tab Pro 8.4 (SM-T320) / 国行 固件下载 刷机教程 下载手机驱动,刷机工具Odin,相应的固件包,手机和电脑用数据线连接安装好手机的驱动. 手机先完全的关机, ...
- 转载】JQuery中如何传递参数如click(),change()等具体实现
转载地址:http://www.jb51.net/article/36249.htm 有个需求让两个select中option相互转换,这个作业就是给几个按钮添加click()事件接下来为大家介绍下如 ...
- CSS3的新增边框属性
一.CSS3 新增的边框属性 属性 版本 简介 border-image CSS3 设置或检索对象的边框使用图像来填充 border-image-source CSS3 设置或检索对象的边框是否用图像 ...
- 用asp连接Access数据库 制作简单登陆界面
[题外话:最近做Internet作业,在这写一个适合初学入门的ASP连接ACCESS数据库做登陆界面的简单的例子,以慰藉我一口气把以前做过的系统中的PHP代码全改成ASP代码来临时应付作业的心情... ...
- FWT背板笔记
板子 背板子.jpg \(Fwt\)用于解决这样的问题 \[C_i=\sum_{j\bigoplus k=i}A_j\times B_k\] 其中\(\bigoplus\)是一种二元运算符,如\(or ...
- 4521: [Cqoi2016]手机号码
4521: [Cqoi2016]手机号码 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1030 Solved: 609 [Submit][Statu ...
- kubeadm init 时从本地私有仓库下载镜像
#kubeadm init 时从本地私有仓库下载镜像 images=( gcr.io/google_containers/kube-proxy-amd64:v1.6.1 gcr.io/google_c ...