在docker中使用sqlplus
1、找个带sqlplus的镜像
从docker hub上下载https://hub.docker.com/r/sflyr/sqlplusdocker pull sflyr/sqlplus
2、在k8s中运行
由于该镜像启动后没有运行的程序,所以会很快退出,导致k8s一直报错:Back-off restarting failed container.是因为,容器内PID为1的进程退出导致(通常用户在构建镜像执行CMD时,启动的程序,均是PID为1)
所以,该镜像不能直接使用,需要自己加工一下。
使用dockerfile重新构建一个镜像。
[root@hadoop01 dockerfiledir]# more Dockerfile
FROM sflyr/sqlplus:latest
CMD ["/bin/bash", "-ce", "tail -f /dev/null"]
[root@hadoop01 dockerfiledir]#
构建
[root@hadoop01 dockerfiledir]# docker build -t sqlplus:v20230424 .
Sending build context to Docker daemon 2.048 kB
Step 1/2 : FROM sflyr/sqlplus:latest---> d0cab823fcdc
Step 2/2 : CMD /bin/bash -ce tail -f /dev/null---> Running in b7572268d95e---> f46ed69aa12d
Removing intermediate container b7572268d95e
Successfully built f46ed69aa12d
查看镜像包
结束后会生成镜像包,使用docker images查看
[root@hadoop01 dockerfiledir]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sqlplus v20230424 f46ed69aa12d About an hour ago 461 MB
保存镜像包
[root@hadoop01 ~]# docker save -o sqlplus.tar sqlplus
[root@hadoop01 ~]# ls -lrt
total 1796316
-rw-------. 1 root root 467651072 Apr 24 02:21 sqlplus.tar
此处生成的镜像包可以直接加载使用。
如果是在启动的时候执行其他脚本,则
Dockerfile为
[root@hadoop01 dockerfiledir]# more Dockerfile
FROM sflyr/sqlplus:latest
COPY ["start.sh", "/root/start.sh"]
WORKDIR /root
CMD ["/bin/bash", "./start.sh"]
[root@hadoop01 dockerfiledir]#
注意:start.sh为Dockerfile同级目录下的文件,如下
[root@hadoop01 dockerfiledir]# ls -lrt
total 456704
-rw-r--r--. 1 root root 52 Apr 24 03:53 start.sh
-rw-r--r--. 1 root root 108 Apr 24 03:58 Dockerfile
在docker中使用sqlplus相关推荐
- 【DB宝3】在Docker中使用rpm包的方式安装Oracle 19c
[DB宝3]在Docker中使用rpm包的方式安装Oracle 19c 文章目录 [DB宝3]在Docker中使用rpm包的方式安装Oracle 19c 一.安装Docker软件 二.创建CentOS ...
- Docker中配置Oracle12c
前言 最近实习导师要求部署公司项目,其中需要使用Oracle.在经历了window的部署之后他竟然神奇的卡了3小时进度条!无奈之下只能取消,结果可想而知,我还需要卸载我的window版本的Oracle ...
- Docker的使用(五:Docker中的网络与数据管理)
实验环境 三台运行有Ubuntu 16.04 操作系统的虚拟机,并每台主机中已安装docker环境: 学习目标 docker的网络管理 docker Swarm集群的使用 Volume数据卷的使用 实 ...
- 你在 Docker 中跑 MySQL?恭喜你,可以下岗了!
欢迎关注方志朋的博客,回复"666"获面试宝典 容器的定义:容器是为了解决"在切换运行环境时,如何保证软件能够正常运行"这一问题. 目前,容器和 Docker ...
- docker保护python源码_Tensorflow在Docker中运行和源码编译
本文分享在在Docker中运行Tensorflow和进行源码编译的方法和步骤,包括:编译.构建docker镜像.创建和运行Docker容器.部署完的容器可以通过Jupyter Notebook进行访问 ...
- Docker中的Java内存消耗优化以及我们如何使用Spring Boot
---- / BEGIN/ ---- 如果您的Docker容器占用太多内存而无法达到最佳性能,请阅读下文以了解一个团队如何找到解决方案. 最近,我所在的团队在部署我们的微服务(AWS上Docker中的 ...
- Docker中的“公开”和“发布”有什么区别?
本文翻译自:What is the difference between "expose" and "publish" in Docker? I'm exper ...
- linux uts namespace 提供了主机名和域名的隔离 docker中被用到
UTS,UNIX Time-sharing System namespace提供了主机名和域名的隔离.能够使得子进程有独立的主机名和域名(hostname),这一特性在Docker容器技术中被用到,使 ...
- Docker中的Registry和Repository
很多文章中,没有可以区分registery和repostry的关系.事实上,他们俩还是很不一样的.简单来说, Registry:注册服务器,用于管理镜像仓库,起到的是服务器的作用. Repositor ...
最新文章
- 海门工业机器人_海门工业机器人供应商稳扎稳打
- 【UWB】Savitzky Golay filter SG滤波器原理讲解
- ar linux 删除模块_Linux基础命令---ar
- 2017 Vue.js 2快速入门指南
- SAP Hybris Discount group,折扣组,折扣记录,用户组几组概念的关联
- x264_param_default
- [小技巧]EF Core中如何获取上下文中操作过的实体
- 【51单片机快速入门指南】5.1:SPI与DS1302时钟芯片
- Windows Communication Foundation from msdn
- Redis 的 Sentinel哨兵介绍与源码分析(1):初始化部分
- span组件内容的刷新(笔记)
- 【编译原理笔记04】语法分析:自顶向下的分析概述、文法转换、LL1文法
- mysql gtid坑_数据库mysqldump的坑
- Android okhttp https TrustManager简单总结
- 计算机二级C语言程序设计 第一章 程序设计基本概念
- 义隆单片机学习笔记之(四) 编程及烧录
- 2019前端开发面试问题及答案整理
- 运气和技术的另类平衡————对大逃杀及战棋类游戏大热的原因思考(正片)
- Unable to locate tools.jar. Expected to find it in D:/jre6/lib/tools.jar问题解决
- Bseline基准预测、zip()、dict()、groupy().agg()、
热门文章
- PC微信3.3.0内测版(新增朋友圈功能)
- 3.3 CPU共享功能
- 技术沙龙出海日本:分享京东区块链实践与创新
- Support for the experimental syntax 'decorators-legacy' isn't currently enabled 异常解决
- win10正版office重新安装
- Git使用教程(5)-Git常用命令
- (J3455/J3155/J4015/J4105/……)无线网卡M.2(ngff) keyA/E接口扩展sata硬盘接口,黑群辉NAS系统
- 大学物理 狭义相对论 思维导图总结
- 53个全球免费学术资源数据库整理,查资料写论文必备【开学必备】
- bat实现 自动循环打开谷歌浏览器自动访问网站关闭浏览器功能