docker虚拟化技术系列之-dockerfile配置

author author     2022-08-23     646

关键词:

 随着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 ‘/^sessions+requireds+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


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

Docker在启动容器的时候,需要创建文件系统,为rootfs提供挂载点。最初Docker仅能在支持Aufs文件系统的Linux发行版上运行,但是由于Aufs未能加入Linux内核,为了寻求兼容性、扩展性,Docker在内部通过graphdriver机制这种可扩展的方式... 查看详情

docker重学系列之dockerfile(代码片段)

Docker重学系列之DockerfileDockerfile什么是DockerfileDockerfile解析过程Dockerfile的保留命令FROM命令MAINTAINER命令RUN命令构建镜像---build镜像构建上下文(Context)其它dockerbuild的用法直接用Gitrepo进行构建用给定的tar压缩包构建从标准... 查看详情

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

随着企业Docker容器越来越多,如果要靠手工去管理docker,肯定非常吃力,而且也不现实,这就需要我们把日常的操作变成自动化管理,通过脚本工具,将工作减轻到最小,解放运维人员,如下为企业Docker自动化部署脚本V1版本,... 查看详情

docker系列教程之四dockerfile入门(代码片段)

在上一篇的文章中,我们把 Docker 容器的工作流程剖析的十分清楚了,我们大体可以知道 Docker 组件协作运行容器可以分为以下几个过程:Docker 客户端执行 dockerrun 命令Dockerdaemon 发现本地没有我们需... 查看详情

容器技术之dockerfile

...6327.html;今天我们来聊一聊docker的另一个制作镜像的方式dockerfile;  什么是dockerfile?所谓dockerfile就是用来描述docker镜像制作过 查看详情

虚拟化技术—docker容器—dockerfile篇

什么是Dockerfile?按照平时,我们都需要先让一个容器跑起来,然后进去搭建制定自己的服务,那有没有更简洁的方法呢?Dockerfile就是为了更方便的制定容器的。首先先看Dockerfile里的一些定义,这里从网上截了个图,比较形象:... 查看详情

docker系列之.netcore控制台和asp.netcore服务生成镜像(dockerfile)

通过DockerFile的方式来生成镜像,这个时候,镜像可以单独打包给对方,对方Docker加载了,就可以运行了。通过对控制台应用以及web服务应用一起举例,会更容易参考。新建控制台应用和web服务通过两种不同形... 查看详情

虚拟化技术之docker技术详解

文章目录虚拟化技术之docker技术详解关于作者作者介绍前言虚拟化技术概述及简介一、什么是虚拟化技术?二、常见的虚拟化技术有哪些?2.1KVM虚拟化技术概念2.2ESXI虚拟化技术概念2.3XEN虚拟化技术概念2.4Docker虚拟化概念2.4.1什么... 查看详情

3.docker学习之docker与虚拟化

虚拟化技术是一个总称,是一系列实现虚拟技术的统称。从广义上来说,虚拟化技术包括了虚拟机技术和容器技术,所谓虚拟化技术最大的特点就是将一个真实的机器进行虚拟地分割,然后分割出来的部分可以独立使用 有人... 查看详情

docker知识

...ocker是一个开源的应用容器引擎,基于LXC(LinuxContainer)内核虚拟化技术实现,提供一系列更强的功能,比如镜像、Dockerfile等;Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上。使用沙箱... 查看详情

❤️虚拟化技术❤️之docker技术详解[⭐建议收藏⭐](代码片段)

文章目录虚拟化技术之docker技术详解[⭐建议收藏⭐]关于作者作者介绍前言虚拟化技术概述及简介一、什么是虚拟化技术?二、常见的虚拟化技术有哪些?2.1KVM虚拟化技术概念2.2ESXI虚拟化技术概念2.3XEN虚拟化技术概念2.4Do... 查看详情

docker:docker三剑客之dockercompose(代码片段)

前两篇文章我们介绍了Dockerfile的使用Docker(二):Dockerfile使用介绍,我们知道使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。服务编排有很多种技术方案,今天给大家介绍Docker官... 查看详情

免费下载全套最新3docker视频教程+教学资料+学习课件+源代码+软件开发工具

...取更多新教程教程目录大纲./3、Docker├──3.Linux云计算-虚拟化技术-Docker│??├──10、-Linux云计算-虚拟化技术-Docker镜像仓库加速配置.mp4│??├──11、-Linux云计算-虚拟化技术-Docker化应用体验.mp4│??├──12、-Linux云计算-虚拟... 查看详情

docker学习笔记——镜像制作(dockerfile)(代码片段)

...后Docker容器镜像1.容器技术Linux容器技术是一种轻量级的虚拟化技术,主要特点有:轻量:只打包了需要的bins/libs(也就是命令和库文件),与宿主机共享操作系统,直接使用宿主机的内核。部署快:容器的镜... 查看详情

docker学习笔记——镜像制作(dockerfile)(代码片段)

...后Docker容器镜像1.容器技术Linux容器技术是一种轻量级的虚拟化技术,主要特点有:轻量:只打包了需要的bins/libs(也就是命令和库文件),与宿主机共享操作系统,直接使用宿主机的内核。部署快:容器的镜... 查看详情

docker之dockerfile的概述与使用

一、dockerfile概述 查看详情

我爱java系列---docker的介绍和安装

1.什么是Docker? docker叫做虚拟化技术,也叫作容器化技术. 简单来说就是服务器版,高性能版的linux系统(Ubuntu和centos7以上版本才能运行docker)的虚拟机.2.Docker作用 可以通过docker虚拟化技术,来在一台真实的服务器上构建很多,虚拟... 查看详情

docker入门与应用系列dockerfile

Dockerfile是为快速构建dockerimage而设计的,当你使用dockerbuild命令的时候,docker会读取当前目录下的命名为Dockerfile(首字母大写)的纯文本文件并执行里面的指令构建出一个dockerimage。Dockerfile由一行行命令语句组成,并且支持以#开头... 查看详情