Docker生产实践(六)

镜像构建思路

思路:分层设计

最底层:系统层,构建自己适用的不同操作系统镜像;

中间层:根据运行环境,如php、java、python等,构建业务基础运行环境层镜像;

最上层:根据具体的业务模块,构建应用服务层镜像。

目录构建树结构

案例1:centos 7系统镜像构建

cd /root
mkdir -p /root/docker/system/centos
cd /root/docker/system/centos
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  # 下载阿里RHEL 7 epel源
cp /etc/yum.repos.d/epel.repo epel.repo

创建镜像文件

vim Dockerfile
# This Dockerfile

# Base image
FROM centos

# Who
MAINTAINER shhnwangjian [email protected]

# EPEL
ADD epel.repo /etc/yum.repos.d/

# Base pkg
RUN yum install -y wget supervisor git tree net-tools sudo psmisc mysql-devel && yum clean all

构建镜像

docker build -t shhnwangjian/centos:base .

案例2:基于案例1的centos系统镜像,构建python运行环境镜像

mkdir -p /root/docker/runtime/python
cd /root/docker/runtime/python

创建镜像文件

vim Dockerfile
# Base image
FROM shhnwangjian/centos:base

# Who
MAINTAINER shhnwangjian [email protected]

# Python env
RUN yum install -y python-devel python-pip supervisor

# Upgrade pip
RUN pip install --upgrade pip

构建镜像

docker build -t shhnwangjian/python .

时间: 2024-11-03 21:34:54

Docker生产实践(六)的相关文章

【VMCloud云平台】拥抱Docker(六)关于DockerFile(3)示例

在前面两篇中,我们讲了大部分参数,今天将介绍另外两个较为重要的参数,然后再将前面两章的知识串起来,做一个DockerFile,实现VIM/SSH镜像. 以下就是今天所要说DockerFile涉及的环境: . DockerFile简易示意图: 1. VOLUME参数:看过我们介绍VOLUME篇的同学应该都知道VOLUME这个参数是用来干啥的,这里就不做多介绍了,如果在dockerfile里不指定的话,可以通过-v进行指定,当然两者是有区别的,具体可以参考Docker篇第五章. 2. WORKDIR

深入浅出Docker(六):像谷歌一样部署你的应用

1.概述 谷歌发起的开源项目从来都是广受技术圈的关注和讨论,本文将介绍的就是最新的容器编排管理系统Kubernetes.Kubernetes开源项目版本更新频繁,对于初次使用者来说其定义大量的技术术语并且随时会有新术语出现.在这种不稳定的技术框架之下,对使用者来说确实带来了一定的技术门槛.为了掌握Kubernetes的核心技术概念,本文尝试通过深入阅读官方文档资料并整理出核心的使用实践思路,以飧国内Kubernetes技术爱好者参考研究. 1.1 Kubernetes是什么 Kubernetes

【VMCloud云平台】拥抱Docker(六)关于DockerFile(2)

上一章,我们讲了DockerFile的最基本构成,讲了两种Dockerfile的构建Image方式,这一篇,我们将来介绍DockerFile里面所带的N多参数. 以下就是今天所要说DockerFile涉及的环境: . DockerFile简易示意图: 1. RUN参数:我们在上一章创建的DockerFile里加入参数Run yum install –y vim*: 2. 尝试构建,你就会发现Dockerfile的RUN参数生效了: 3. 所以,RUN的作用就是可以帮你运行一些需要预运行的命令,但

Docker(十六)-Docker的daemon.json的作用

docker安装后默认没有daemon.json这个配置文件,需要进行手动创建.配置文件的默认路径:/etc/docker/daemon.json 一般情况,配置文件 daemon.json中配置的项目参数,在启动参数中同样适用,有些可能不一样(具体可以查看官方文档),但需要注意的一点,配置文件中如果已经有某个配置项,则无法在启动参数中增加,会出现冲突的错误. 如果在daemon.json文件中进行配置,需要docker版本高于1.12.6(在这个版本上不生效,1.13.1以上是生效的) 参数 

Docker(六)安装Red5进行rtmp推流

1.pull镜像 docker pull mondain/red5 2.启动原版red5 docker run --name red5 -d -p 5080:5080 -p 1935:1935 mondain/red5 3.使用OBS进行推流 https://blog.csdn.net/wk313753744/article/details/50458360 原文地址:https://www.cnblogs.com/yg1024/p/10311756.html

Docker实践(六):Docker Swarm

环境说明: 主机名 操作系统版本 IP地址 docker版本 说明 manager Ubuntu 16.04.5 172.27.9.71 18.09.2 manager管理主机 work01 Ubuntu 16.04.5 172.27.9.75 18.09.2 worker主机01 work02 Ubuntu 16.04.5 172.27.9.76 18.09.2 worker主机02 本文所有测试都在Vmware虚拟机(版本为12.5.2)上完成ubuntu安装详见:Ubuntu16.04.5

docker 实践六:dockerfile 详解

本篇开始来学习关于 dockerfile 的知识. 注:环境为 CentOS7,docker 19.03. dockerfile 是?个?本格式的配置?件, ?户可以使? dockerfile 来快速创建?定义的镜像. 指令系统 dockerfile 主要是通过一个指令来实现想要的功能的.dockerfile 支持的指令如下 ARG 定义创建镜像过程中使?的变量.格式为: ARG<name>[=<default value>] 在执?docker build时, 可以通过 -bui

Docker安装及配置管理

一.Docker介绍: Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容器中开发应用程序,并且可以扩展到成千上万的节点. 容器和 VM(虚拟机)的主要区别是,容器提供了基于进程的隔离,而虚拟机提供了资源的完全隔离.虚拟机可能需要一分钟来启动,而容器只需要一秒钟或更短.容器使用宿主操作系统的内核,而虚拟机使用独立的内核. Docker 目前的局限性之一是,只能用在 64

docker讲解和命令汇总

docker 什么是docker? Docker是Docker.inc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在GitHub上,基于Go语言并遵从Apache2.0协议开源(可以商业). Docker项目的目标是实现轻量级的操作系统虚拟化解决方案. Docker是通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等.由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机VM额外的操