Docker入门3------手动编辑自定义镜像
手动编辑自定义镜像
查看本地现有镜像:

基于centos创建一个,会自动下载centos最新原始镜像
docker run -it --name=web centos /bin/bash

然后在容器内安装redis服务:
[root@b11c52af3a09 /]# mkdir /main
[root@b11c52af3a09 /]# cd /main/
[root@b11c52af3a09 main]# yum install -y wget vim
[root@b11c52af3a09 main]# wget http://download.redis.io/releases/redis-5.0.3.tar.gz
[root@b11c52af3a09 main]# tar -zvxf redis-5.0.3.tar.gz
# 编译环境
[root@b11c52af3a09 main]# yum install -y gcc make
[root@b11c52af3a09 main]# cd redis-5.0.3
# 编译
[root@b11c52af3a09 main]# make
# 修改配置文件(修改监听,密码,端口等设置后保存退出)
[root@b11c52af3a09 redis-5.0.3]# vim redis.conf
# 启动测试
[root@b11c52af3a09 src]# /main/redis-5.0.3/src/redis-server
4221:C 21 Feb 2019 08:20:23.477 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4221:C 21 Feb 2019 08:20:23.477 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=4221, just started
4221:C 21 Feb 2019 08:20:23.477 # Warning: no config file specified, using the default config. In order to specify a config file use /main/redis-5.0.3/src/redis-server /path/to/redis.conf
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 5.0.3 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 4221
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
继续在docker容器内部使用客户端测试也ok,可以退出容器了.
查看最近创建的这个容器,名字是WEB

查看这个容器发生的变化
docker diff b11c52af3a09会输出居多无比的信息提交容器修改
[root@localhost main]# docker commit --help
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Create a new image from a container's changes
Options:
-a, --author string Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
-c, --change list Apply Dockerfile instruction to the created image
-m, --message string Commit message
-p, --pause Pause container during commit (default true)
- 提交修改为一个镜像,指定提交内容,指定提交那个容器(web或者容器id),指定镜像的名称和版本号
[root@localhost main]# docker commit -a "sam@demo.com" -m "copile redis on centos" web sam/myredis:v1
sha256:e1cb69f9e47d78f20757f2770cdf5acede29e47ca61a194dbbaaee9babb64f6a
可以发现自己的镜像生成了!

查看修改记录
docker history sam/myredis:v1

使用本地的镜像提供redis服务
[root@localhost main]# docker run -p6379:6379 -d sam/myredis:v1 /main/redis-5.0.3/src/redis-server
11c4d73c5e14329c5ca7c582f8bbd0cc668665a8d7f631601e456a16bed2b2cc

要想再次进入运行的容器内部: exec
docker exec -it 11c4d73c5e14 /bin/bash

而使用ctrl+p+q可以将该容器置于后台,而不是马上exited
于是整个手动构建就成功了
Docker入门3------手动编辑自定义镜像的更多相关文章
- Docker入门(四)——MySQL镜像中的数据库可视化
在详细介绍这篇文章的内容前,需要说明下笔者写这篇文章的意图:笔者在现有的开发中,前后端联调的方式为Docker镜像对接,数据库使用MySQL镜像,开发环境为远程服务器,因此,笔者迫切需要一种能将远 ...
- 使用docker创建含有FFmpeg的自定义镜像
Dockerfile文件 FROM openjdk:8-jre-alpine MAINTAINER "yvioo" RUN echo "http://mirrors.al ...
- Docker 11 自定义镜像
参考源 https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0 https://www.bilibili.com/vid ...
- Docker入门教程(九)10个镜像相关的API
Docker入门教程(九)10个镜像相关的API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第九篇,重点介绍了镜像相关的Docker Remote ...
- docker 笔记(基本概念、快速运行、自定义镜像)
1.docker docker是一个打包应用的工具 非常强大,能把操作系统也打在包里,进行无差别部署和运行. 所以docker也被认为是建立在操作系统上的虚拟机. 2.基本概念 镜像(image) ...
- docker构建自定义镜像
docker构建自定义镜像 要构建一个镜像,第一步准备所需要的文件,第二步编写Dockerfile文件,比如我现在构建一个java web镜像 第一步:准备java web工程的war包文件(这里假设 ...
- 阿里云自定义镜像可以免费保存,ECS实例到期后自定义镜像手动快照不会被删除
阿里云自定义镜像可以免费保存,ECS实例到期后自定义镜像手动快照不会被删除 4. ECS 实例释放后,自定义镜像是否还存在? 存在. 5. ECS 实例释放后,快照是否还存在? 保留手动快照,清除自动 ...
- Docker入门与应用系列(二)镜像管理
1.1 什么是镜像 简单说,Docker镜像是一个不包含Linux内核而又精简的Linux操作系统. 1.2 镜像从哪里来 Docker Hub是由Docker公司负责维护的公共注册中心,包含大量的容 ...
- docker入门——安装(CentOS)、镜像、容器
Docker简介 什么是docker 官方解释: Docker is the company driving the container movement and the only container ...
随机推荐
- CountDownLatch、CyclicBarrier和Semaphore 使用示例及原理
备注:博客园的markDown格式支持的特别不友好.也欢迎查看我的csdn的此篇文章链接:CountDownLatch.CyclicBarrier和Semaphore 使用示例及原理 CountDow ...
- SQL递归方式实现省市区县级别查询
数据库脚本 CREATE TABLE [dbo].[Std_Area]( [Id] [int] NOT NULL, [Name] [nvarchar](50) NULL, [ParentId] [in ...
- css实现高度或者宽度不固定的div元素垂直左右居中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【OCR技术系列之八】端到端不定长文本识别CRNN代码实现
CRNN是OCR领域非常经典且被广泛使用的识别算法,其理论基础可以参考我上一篇文章,本文将着重讲解CRNN代码实现过程以及识别效果. 数据处理 利用图像处理技术我们手工大批量生成文字图像,一共360万 ...
- Spark性能优化指南——基础篇
本文转自:http://tech.meituan.com/spark-tuning-basic.html 感谢原作者 前言 在大数据计算领域,Spark已经成为了越来越流行.越来越受欢迎的计算平台之一 ...
- hdoj:2085
核反应堆 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- mysql事务隔离级别及传播机制
TRANSACTION(事务隔离级别) 在说明事务隔离级别之前先说一下脏读.不可重复读.幻读这三个概念. 脏读:一个事务读取到另一事务未提交的更新新据.当一个事务正在访问数据,并且对数据进行了修改,而 ...
- Altium Designer学习---如何进行SI仿真
Altium designer 如何进行SI仿真. 1.仿真电路中需要至少一块集成电路: 2.器件的IBIS模型: 3.在规则中必须设定电源网络和地网络: 4.建立SI规则约束: 5.层堆栈必须设置正 ...
- java把一个list分割成多个list存入map中(实例)
这都是最近我写工具遇到的一些点, 这些点就是指我在网上没搜到答案,然后实际上我为此花费了时间的 public static void main(String[] args) { List<Str ...
- Netty WebSocket 开发
代码: Server package netty.protocol.websocket.server; import io.netty.bootstrap.ServerBootstrap; impor ...