docker构建dm8镜像
dm8 docker镜像制作
一、docker简介
Docker是一个容器运行的管理引擎,类似vmware运行虚拟机,把应用程序和所需配置文件打包形成一个镜像文件,通过镜像文件来创建运行容器,类似于一个物理机运行多个虚拟机,docker运行于操作系统之上,一个操作系统可运行多个容器(多个进程),每个容器相当于一个精简版的Linux系统,包含内核、bootfs引导文件系统rootfs等文件,多个容器之间进程隔离保证安全性,容器也拥有自己的一套网络管理方式。
docker三要素:
镜像:类似于程序的可执行文件,即独立的软件安装包,一个只读的模板,相当于一个精简版关机状态下的Linux系统。可以用镜像来创建容器,一个镜像可以创建多个容器,包含软件运行的基本条件
容器:类似于程序运行后的进程,是镜像运行后的一个状态,一个容器可运行一种或多种服务,由镜像创建而来,相当于一个精简版的Linux系统,包含程序运行的基本条件,不同容器之间通过进程隔离保证互不干扰
仓库:存放镜像的场所,国内公开的有阿里云、清华镜像仓库、官网Docker hub等等,私有的可自行创建
二、制作docker镜像步骤说明
方法1:Docker commit将运行的容器制作成镜像,容器内有运行的服务会关闭。
方法2:Dockerfile,Dockerfile是用来构建Docker镜像的文本文件,通过在文本中添加指令,一步完成所有功能添加,避免方法一的反复commit。
Docker执行Dockerfile的大致流程如下
1)Docker从基础镜像运行一个容器
2)依次执行指令对容器做出修改
3)做出修改后提交一个新的镜像层
4)Dockers再基于刚提交的镜像运行一个新容器
5)继续执行后续指令循环上述步骤
三、案例-制作dm8docker镜像
使用 dockerfile方式构建
dockerfilec常用关键字介绍(必须大写)
开始构建镜像:
dm8安装简介:达梦数据库安装后由安装目录和数据目录组成,只要环境和版本相同,可分别拷贝进行运行,提前在宿主机进行安装,按照可参照其他博客,并将安装目录dmdbms中无关组件删除,以减少镜像大小。
Dockerfile文件配置如下:
FROM centos:7 #基础镜像,包含系统运行基本环境
MAINTAINER lucas@789
RUN mkdir -p /dm/data #创建安装目录
ADD dmdbms /dm #将安装目录导入镜像
#设置环境变量
ENV DM_HOME=/dm PATH=$PATH:/dm/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/dm/bin
#初始化数据库及配置启动数据服务
RUN /dm/bin/dminit path=/dm/data main_size=32 roll_size=32 \&& /dm/script/root/dm_service_installer.sh -t dmserver -p DM -dm_ini /dm/data/DAMENG/dm.ini
#容器启动时默认运行的命令
CMD DmServiceDM start
注意:Dockerfile文件必须和dmdbms目录在同一目录下,需要更改DM_HOME环境变量为容器内的路径,否则无法创建数据库启动服务命令
开始构建: docker build -t dm8:v4 .
[root@200 soft]# docker build -t dm8:v4 .
Sending build context to Docker daemon 1.52GB
Step 1/7 : FROM centos:7---> eeb6ee3f44bd
Step 2/7 : MAINTAINER liw@789---> Using cache---> 0acbd3124f5b
Step 3/7 : RUN mkdir -p /dm/data---> Using cache---> a535d66a9e80
Step 4/7 : ADD dmdbms /dm---> Using cache---> a4578c0af2ef
Step 5/7 : ENV DM_HOME=/dm PATH=$PATH:/dm/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/dm/bin---> Using cache---> 0eab68ee4289
Step 6/7 : RUN /dm/bin/dminit path=/dm/data main_size=32 roll_size=32 && /dm/script/root/dm_service_installer.sh -t dmserver -p DM -dm_ini /dm/data/DAMENG/dm.ini---> Using cache---> 0f987e5c57b9
Step 7/7 : cmd DmServiceDM start---> Using cache---> 19d57a6954fa
Successfully built 19d57a6954fa
Successfully tagged dm8:v4 ---> Running in 9c9e2a0de7ec
Removing intermediate container 9c9e2a0de7ec---> 01ef5758a91e
Successfully built 01ef5758a91e
Successfully tagged dm8:v1
启动容器:
docker run -id --name=dm8_v4 -v /dm/data:/opt/dmdata -p 5678:5236 dm8:v4 nohup dmserver /dm/data/DAMENG/dm.ini &
查看容器:
访问数据库
结语:学习记录笔记,若有错误,欢迎指正,不完善的地方继续学习更新。
docker构建dm8镜像相关推荐
- Docker构建JDK 镜像
Docker构建JDK 镜像 在 Docker官网中的openJDK 镜像中,默认不是使用的北京时间,会导致启动jar应用程序时时区不对的情况,这里在 openJDK镜像的基础上,设置使用中国北京时间 ...
- docker构建hadoop镜像、docker-compose启动hdfs
之前使用镜像singularities/hadoop:2.8安装过hdfs,但鉴于这个镜像已经很久没更新了,今天就手动安装一下hadoop,并构建成镜像,方便以后使用. 参考文档:docker构建ha ...
- Docker构建MySQL镜像并初始化
文章目录 Docker构建MySQL镜像并初始化 Dockerfile 的一些常用语法 FROM RUN CMD ENV COPY ADD WORKDIR EXPOSE 构建自带初始化的 MySQL ...
- 使用docker构建jenkins镜像并运行容器
https://my.oschina.net/donhui/blog/470372?p={{currentPage+1}} 摘要: 使用docker构建jenkins镜像并运行容器 目录: 1.基 ...
- Docker构建YApi镜像, Docker安装YApi, Docker部署YApi
目录 概述 基本环境 docker网络 安装MongoDb 构建YAPI镜像 运行YAPI Nginx反向代理 挂域名 概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测 ...
- web重启tomcat_使用docker构建jdk镜像和web服务镜像
一.构建jdk镜像 FROM centos WORKDIR /home/lily ADD jdk-8u91-linux-x64.tar.gz /home/lily RUN mv jdk1.8.0_91 ...
- docker构建hadoop镜像并运行
单机版hadoop使用docker构建及运行 一.环境: 组件信息 组件 版本 CentOS 7.9.2009 java 1.8.0_161 hadoop 3.1.3 docker 20.10.8 服 ...
- docker 构建tomcat镜像部署war包
docker 构建tomcat容器部署war包 拉取tomcat镜像 docker pull tomcat:8.5-alpine 查看镜像 docker images 构建并启动容器 docker r ...
- CentOS7服务器Docker构建ubuntu镜像出错invalid argument
为什么80%的码农都做不了架构师?>>> #1 发现问题 拿到某云主机时,选择了最新的CentOS 7.2的公共镜像,一些工作过后,开始布暑应用.因为没有使用docker仓库, ...
最新文章
- 想学Python?快看看这个教程!收藏!
- Java8新特性:接口的默认方法与接口的静态方法
- python 设置默认字典
- C#鼠标右键弹出菜单
- CM: 如何通过attachment的physical instance id反查到所属的business object ID
- makefile obj文件路径_Makefile一问:如何修改.o输出文件的输出路径 Linux/Unix社区 / 程序开......
- python3异步协程爬虫_Python实现基于协程的异步爬虫
- 计算机描绘的基因结构图,利用IBS软件画基因mRNA的结构图
- firewalld-富规则使用内容事项:
- php mysql登陆页面完整代码_PHP实现用户登录的案例代码
- 中间件是什么?通俗易懂的解释
- 报告女王陛下,我找到了可以吃的塑料杯!
- APP服务器与Web服务器的区别是什么?
- [转载]iOS开发之第三方登录QQ
- 2惠普暗影精灵恢复出厂设置
- 格式化电脑重装系统怎么操作
- Introduce·艺术学核心期刊推荐之《文艺争鸣》
- Python网络爬虫:爬取CSDN热搜数据 并保存到本地文件中
- 施一公首部作品:《自我突围:向理想前行》
- Node.js项目中动态加载环境变量配置