Docker虚拟化技术系列之-DockerFile配置

随着Docker管理的任务增多,我们需要用Dockerfile进行docker容器管理,这样可以减轻人工的操作,让docker管理更加的方便,快捷:

Dockerfile是一个镜像的完整描述,可以通过Dockerfile来描述构建镜像的步骤,并自动构建一个容器。

所有的 Dockerfile 命令格式都是:

INSTRUCTION arguments

虽然指令忽略大小写,但是建议使用大写。

FROM 命令

FROM <image>

FROM <image>:<tag>

这个设置基本的镜像,为后续的命令使用,所以应该作为Dockerfile的第一条指令。

比如:

FROM centos:v1

如果没有指定 tag ,则默认tag是latest,如果都没有则会报错。

RUN 命令

RUN命令会在上面FROM指定的镜像里执行任何命令,然后提交(commit)结果,提交的镜像会在后面继续用到。

两种格式:

RUN <command> (the command is run in ashell - `/bin/sh -c`)

或:

RUN ["executable","param1", "param2" ... ] (exec form)

RUN命令等价于:

docker run image command

docker commit container_id

编写Dockerfile实战

根据上面的操作步骤,在docker服务器端创建Dockerfile文件,内容如下:

# 设置基本的镜像,后续命令都以这个镜像为基础
FROM centos:v1
# 作者信息
MAINTAINER JFEDU.NET
# RUN命令会在上面指定的镜像里执行任何命令
RUN yum install passwd openssl openssh-server-y
RUN echo ‘123456‘ | passwd --stdin root
RUN ssh-keygen -q -t rsa -b 2048 -f/etc/ssh/ssh_host_rsa_key -N ‘‘
RUN ssh-keygen -q -t ecdsa -f/etc/ssh/ssh_host_ecdsa_key -N ‘‘
RUN sed -i ‘/^session\s\+required\s\+pam_loginuid.so/s/^/#/‘/etc/pam.d/sshd
RUN mkdir -p /root/.ssh && chownroot.root /root && chmod 700 /root/.ssh
#对外暴露SSH 22端口
EXPOSE 22
# 设定运行镜像时的默认命令:输出ip,并以daemon方式启动sshd
CMD ip addr ls eth0 | awk ‘{print $2}‘ | egrep-o ‘([0-9]+\.){3}[0-9]+‘;/usr/sbin/sshd -D

时间: 2024-10-03 14:14:46

Docker虚拟化技术系列之-DockerFile配置的相关文章

Docker虚拟化技术系列之-自动化部署管理

随着企业Docker容器越来越多,如果要靠手工去管理docker,肯定非常吃力,而且也不现实,这就需要我们把日常的操作变成自动化管理,通过脚本工具,将工作减轻到最小,解放运维人员,如下为企业Docker自动化部署脚本V1版本,如果需要更多其他的功能,可以自己定制和修改. 如下自动化管理脚本功能: 1)通过YUM自动安装Docker平台: 2)通过该脚本,可以自动配置桥接网络: 3)自动创建docker容器,给予centos操作系统: 4)自动收集创建好的Docker容器,集中管理: 5)通过PI

Docker虚拟化技术系列之-命令详解

虚拟化原理:虚拟化解决方案的底部是要进行虚拟化的物理机器.这台机器可能直接支持虚拟化,也可能不会直接支持虚拟化:那么就需要系统管理程序 层的支持.系统管理程序(Virtual machine monitor),或称为 VMM,可以看作是平台硬件和操作系统的抽象化.在某些情况中,这个系统管理程序就是一个操作系统:此时,它就称为主机操作系统. 随着docker不断的学习,我们要想进一步去维护docker,就需要掌握docker日常使用的命令,如下为docker常用命令: 一.容器基础命令 docke

Docker虚拟化技术系列之-磁盘扩容

Docker在启动容器的时候,需要创建文件系统,为rootfs提供挂载点.最初Docker仅能在支持Aufs文件系统的Linux发行版上运行,但是由于Aufs未能加入Linux内核,为了寻求兼容性.扩展性,Docker在内部通过graphdriver机制这种可扩展的方式来实现对不同文件系统的支持. 目前,Docker支持Aufs,Devicemapper,Btrfs和Vfs四种文件系统,docker容器默认的空间是10G,如果想指定默认容器的大小(在启动容器的时候指定),可以有如下两种方法: 建

使用Docker虚拟化技术搭设Hadoop环境

一.Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app).几乎没有性能开销,可以很容易地在机器和数据中心中运行.最重要的是,他们不依赖于任何语言.框架包括系统.(以上摘自“百度百科”) 二.Docker安装 2.1 Docker简介 使用yum安装Docker最新版本,经验证,目前能安装Dock

Docker虚拟化技术

---恢复内容开始--- Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化. 容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app).几乎没有性能开销,可以很容易的在机器和数据中心中运行.更重要的是,它们不依赖于任何语言,框架或包括系统. “Docker”应该是2014年最火爆的技术之一,2015年将开启新的跨越. Docker自开源后受到广泛的关注和讨论,以至于dotClo

H3C三层交换机之IRF虚拟化技术详解及配置

博文大纲: 一.IRF是什么? 二.IRF技术的优点 三.IRF的相关基本概念 四.IRF的运行模式与配置方式 五.IRF的角色选举 六.IRF技术的配置详解 七.IRF及MAD配置的显示及维护命令 一.IRF是什么? 目前,网络中主要存在两种结构的通信设备,固定盒式设备和模块框式分布式设备.固定盒式设备成本低廉,但没有高可用性支持:模块框式分布式设备具有高可用性.高性能.高端口密度的优点,但投入成本高.针对盒式设备和模块框式分布式设备的这些特点,一种结合了两种设备优点的IRF虚拟化技术应运而生

IPV6技术系列②——IPv6地址配置

IPv6简介 IPv6即 Internet Protocol Version 6,为IP协议的下一代版本.IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代目前广泛使用的IPv4的下一代IP协议,有着"可以为世界每一粒沙子分配一个网址"的盛名.由于IPv4在网络地址范围极为有限,严重限制了互联网的应用和发展.这种矛盾在5G.物联网等新兴技术即将流行的今天尤为突出.而IPv6的使用,不仅能解决网络地址资源短缺的问题,同时也

你真的了解Docker虚拟化吗?

服务器虚拟化指的是在操作系统与硬件之间加一层,叫做hypervisor层,对下控制硬件,对上承载操作系统,操作系统os以文件形式封装运行,称为虚拟机,主要解决的问题是硬件利用率和灵活性的问题,常见的方案为vmware vsphere,xen,kvm,hyper-v..容器虚拟化指的是在os上将应用打包以进程的形式运行,应用和应用间非完全隔离,但是更轻量,效率高,lxc和docker都可以称为容器级虚拟化,区别在于docker可以理解为经过精美封装过更加好用的lxc,有更好的接口和更完善的配套.

Docker虚拟化

1. Docker虚拟化特点 跟传统VM比较具有如下优点: 操作启动快 运行时的性能可以获取极大提升,管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的. 轻量级虚拟化 你会拥有足够的“操作系统”,仅需添加或减小镜像即可.在一台服务器上可以布署100~1000个Containers容器.但是传统虚拟化,你虚拟10-20个虚拟机就不错了. 开源免费 开源的,免费的,低成本的.由现代Linux内核支持并驱动.注* 轻量的Container必定可以在一个物理机上开启更多“容器”,注定比VM