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 ...
随机推荐
- java maven通过SMTP发送QQ邮件的完全步骤
1.首先打开QQ邮箱的SMTP服务,因为QQ邮箱对于一般的用户都是默认关闭SMTP服务的. 找到SMTP服务的选项,可以看到此处默认是关闭的,点击开启,然后腾讯会进行一些身份验证,身份验证通过以后,腾 ...
- php中urlencode与rawurlencode的区别
前段时间说自己遇到了个<URL加号引发错误>的BUG,引起这个bug的原因就是自己在URL中使用了 urlencode 函数,该函数会把空格转换成加号,这样就导致URL解析出错,而空格只有 ...
- BizTalk RosettaNet解决方案之Loopback
本教程使用 BizTalk Accelerator for RosettaNet (BTARN) 在一台计算机上模拟本组织与合作伙伴组织之间的流程实施情况. 创建本组织 “BizTalk <版本 ...
- Python中的retry
1.通过语言特性实现: for i in range(0,100): while True: try: # do stuff except SomeSpecificException: continu ...
- Attacks for RL
1. http://rll.berkeley.edu/adversarial/ Adversarial Attacks on Neural Network Policies 就是对test时候的p ...
- SpringMVC+ Mybatis 配置多数据源 + 自动数据源切换 + 实现数据库读写分离
现在大型的电子商务系统,在数据库层面大都采用读写分离技术,就是一个Master数据库,多个Slave数据库.Master库负责数据更新和实时数据查询,Slave库当然负责非实时数据查询.因为在实际的应 ...
- 更改了react-redux 官方网站的todolist结构
最近在学习胡子大哈的react小书,内容讲的由浅入深,很值得react,react-redux小白一读. 废话不多说直接上地址:http://huziketang.mangojuice.top/boo ...
- Jquery EasyUI Combotree 初始化赋值
Jquery EasyUI Combotree 初始化赋值 ================================ ©Copyright 蕃薯耀 2018年5月7日 https://www. ...
- 写在开始前---ajax中的会话过期与重新登录
一般情况下,点击<a>链接或浏览器输入url时,请求到后端,服务器判断会话是否过期.过期,重定向到登录页,或返回登录页的页面.在ajax中,返回重定向无效,这个时候就需要自己在ajax的逻 ...
- 《转》循环神经网络(RNN, Recurrent Neural Networks)学习笔记:基础理论
转自 http://blog.csdn.net/xingzhedai/article/details/53144126 更多参考:http://blog.csdn.net/mafeiyu80/arti ...