自己制作redis 和mongo 镜像
root@docker-lab:~/redis# ll
total
drwxr-xr-x root root Feb : ./
drwx------ root root Feb : ../
-rw-r--r-- root root Feb : Dockerfile
-rw-r--r-- root root Feb : start.sh
root@docker-lab:~/redis# cat Dockerfile
# Create By www1707@.com FROM centos: COPY start.sh / RUN yum clean all && \
yum update -y && \
yum install -y wget make gcc && \
wget http://download.redis.io/releases/redis-5.0.3.tar.gz && \
tar xzf redis-5.0..tar.gz && \
cd redis-5.0. && \
make && make install && \
cp redis.conf /etc/ && \
sed -i 's/bind 127.0.0.1/#bind 127.0.0.1/' /etc/redis.conf && \
sed -i 's/protected-mode yes/protected-mode no/' /etc/redis.conf && \
cd / && rm -rf redis-5.0.* && \
chmod /start.sh CMD ["/start.sh"] root@docker-lab:~/redis# cat start.sh
#!/bin/bash # 修改系统内核参数,在启动容器时必须使用 docker run --privileged ,否则修改的系统内核参数不会生效 echo > /proc/sys/vm/overcommit_memory && \
echo > /proc/sys/net/core/somaxconn && \
echo never > /sys/kernel/mm/transparent_hugepage/enabled /usr/local/bin/redis-server /etc/redis.conf root@docker-lab:~/redis# docker build -t myredis . 过程省略... root@docker-lab:~/redis# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myredis latest faf5b0d8ad98 seconds ago 428MB
centos 1e1148e4cc2c months ago 202MB root@docker-lab:~/redis# docker run --privileged --name redis-server -d -p : myredis
d1a84ea20ba7f01391d110beccf1f9c8b601516a6a9c9d929cad92ff2499c0e4 root@docker-lab:~/redis# docker run --name redis-client -it -d myredis
f61f87c244c1492f82c91ae9d6ec1e45aadcb73e2a5ab4cc9977c9b1898c3a88 root@docker-lab:~/redis# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f61f87c244c1 myredis "/start.sh" seconds ago Up seconds redis-client
d1a84ea20ba7 myredis "/start.sh" About a minute ago Up About a minute 0.0.0.0:->/tcp redis-server root@docker-lab:~/redis# docker inspect redis-server -f '{{.NetworkSettings.IPAddress}}'
172.17.0.2 root@docker-lab:~/redis# docker inspect redis-client -f '{{.NetworkSettings.IPAddress}}'
172.17.0.3 root@docker-lab:~/redis# docker logs redis-server
:C Feb ::04.128 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
:C Feb ::04.128 # Redis version=5.0., bits=, commit=, modified=, pid=, just started
:C Feb ::04.128 # Configuration loaded
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 5.0. (/) bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port:
| `-._ `._ / _.-' | PID: 8
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-' :M Feb ::04.129 # Server initialized
:M Feb ::04.129 * Ready to accept connections root@docker-lab:~/redis# docker exec -it redis-client /bin/bash
[root@f61f87c244c1 /]# redis-cli -h 172.17.0.2
172.17.0.2:> set foo bar
OK
172.17.0.2:> get foo
"bar"
172.17.0.2:> exit
[root@f61f87c244c1 /]# exit
exit
root@docker-lab:~/mongodb# cat Dockerfile
FROM centos: RUN echo '[mongodb-org]' >>/etc/yum.repos.d/mongodb.repo && \
echo 'name=MongoDB Repository' >>/etc/yum.repos.d/mongodb.repo && \
echo 'baseurl=https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el$releasever/' >>/etc/yum.repos.d/mongodb.repo && \
echo 'gpgcheck=0' >>/etc/yum.repos.d/mongodb.repo && \
echo 'enabled=1' >>/etc/yum.repos.d/mongodb.repo && \
\
yum clean all && \
yum install -y initscripts mongodb-org && \
yum clean all && \
\
echo 'mongod soft nofile 64000' >> /etc/security/limits.conf && \
echo 'mongod hard nofile 64000' >> /etc/security/limits.conf && \
echo 'mongod soft nproc 32000' >> /etc/security/limits.conf && \
echo 'mongod hard nproc 32000' >> /etc/security/limits.conf && \
\
sed -i 's/ bindIp: 127.0.0.1/# bindIp: 127.0.0.1/' /etc/mongod.conf && \
\
echo '#!/bin/bash' >> /start.sh && \
echo 'echo "never" > /sys/kernel/mm/transparent_hugepage/enabled' >> /start.sh && \
echo 'echo "never" > /sys/kernel/mm/transparent_hugepage/defrag' >> /start.sh && \
echo '/etc/init.d/mongod start ' >> /start.sh && \
echo ' ' >>/start.sh && \
echo 'while [ -e /var/run/mongodb/mongod.pid ]' >> /start.sh && \
echo 'do' >> /start.sh && \
echo ' sleep 1' >> /start.sh && \
echo 'done' >> /start.sh && \
chmod /start.sh CMD ["/start.sh"] root@docker-lab:~/mongodb# docker build -t mymongo . 过程省略... root@docker-lab:~/mongodb# docker run --name mongo_server -d --privileged -p : mymongo
4620a598a3457452d37446e2eeeaf292bbc3d0eca5a2f926695caf5c6da1c01f root@docker-lab:~/mongodb# docker run --name mongo_client -d mymongo
017d7a8ad77929b939ad72090ad318d0607a590927a156ae4468bfbf99b21499 root@docker-lab:~/mongodb# docker inspect mongo_server -f '{{.NetworkSettings.IPAddress}}'
172.17.0.2
root@docker-lab:~/mongodb# docker inspect mongo_client -f '{{.NetworkSettings.IPAddress}}'
172.17.0.3
root@docker-lab:~/mongodb# docker logs mongo_server
Starting mongod: [ OK ]
root@docker-lab:~/mongodb# docker exec -it mongo_client /bin/bash
[root@017d7a8ad779 /]# mongo --host 172.17.0.2
MongoDB shell version: 3.2.
connecting to: 172.17.0.2:/test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
> show dbs
local .000GB
> exit
bye
[root@017d7a8ad779 /]#
自己制作redis 和mongo 镜像的更多相关文章
- MySQL、MongoDB、Redis数据库Docker镜像制作
MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...
- 使用Dockerfile制作自己的Docker镜像
一.背景 一直以来的开发流程都是先从Docker Hub中获取到基础镜像,之后在这个镜像的基础上做开发,以满足一定的需求或者提供某种服务,并由此产生新的镜像,然后就可以push到Docker Hub中 ...
- 使用systemback制作Ubuntu自定义系统镜像和系统备份(抄)
使用systemback制作Ubuntu自定义系统镜像和系统备份 2017年06月23日 16:17:51 BWBOT 阅读数:10714 原链接:https://community.bwbot. ...
- 制作自己的docker镜像
制作自己的Docker镜像主要有如下两种方式: 1.使用docker commit 命令来创建镜像 通过docker run命令启动容器 修改docker镜像内容 docker commit提交修改的 ...
- Redis vs Mongo vs mysql
Redis 和 Mongo 都属于 No-SQL类型的数据库,他们的区别,联系是什么呢?看了一些文章,特总结如下. Redis 最大的特点是,快!为什么快,因为他将大量的东西存储在了memory中.但 ...
- OpenStack手动制作CentOS 7 KVM镜像
在前面讲解KVM的时候,我们已经学习了如何制作KVM镜像,那么制作OpenStack使用的镜像和KVM是有一些区别的. 1. 下载CentOS 7官方ISO安装镜像这里使用国内阿里云的镜像源进行 ...
- alpine制作jdk、jre镜像、自定义镜像上传阿里云
alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBo ...
- 制作linux云主机镜像
目录 制作linux云主机镜像 1.物理机环境准备 2.安装kvm虚拟机 3.操作虚拟机 4.在物理机上处理镜像 5.拷贝制作好的raw格式的镜像 6.发布镜像到云平台 制作linux云主机镜像 1. ...
- 制作OpenOffice的Docker镜像并添加中文字体解决乱码问题
官网下载openoffice http://www.openoffice.org/download/index.html 本文使用的是Docker官方发布的CentOS7镜像作为基础镜像.镜像的获取方 ...
随机推荐
- bzoj1009 GT考试 (kmp+矩阵优化dp)
设f[i][j]是到第i位 已经匹配上了j位的状态数 然后通过枚举下一位放0~9,可以用kmp处理出一个转移的矩阵 然后就可以矩阵快速幂了 #include<bits/stdc++.h> ...
- 【php】php算法的一些实现
1.生成一定范围内的数组,步长可以设置 function range($step = 10, $max = 100){ if ($step < 1 || $step > $max){ re ...
- ComM(通信管理)和CanNm(network)
1 网络管理组成部分 网络管理部分由通信管理器(简称ComM),通用网络管理器接口(简称NmIf),总线相关的网络管理器(简称NM,包括CanNM,LinNM,FrNM),总线相关的状态管理 ...
- JSP、EL、JSTL
JSP(Java Server Pages) 什么是JSP Java Server Pages(Java服务器端的页面) 使用JSP:SP = HTML + Java代码 + JSP自身的东西.执行J ...
- 关于json_encode转数组为json对象时里有数组格式数据的问题
前言:这次是给一款小程序提供接口时发现的 别的不多说,下面直接看出现问题的json数据 可以看到,这是一个大的json对象,是由多维数组组成,一般api接口提供的也是这种格式. 但是仔细看红框中的内容 ...
- bash 5
1)bash支持一维数组(不支持多维数组),并且没有限定数组的大小. 类似于 C 语言,数组元素的下标由 0 开始编号.获取数组中的元素要 利用下标,下标可以是整数或算术表达式,其值应大于或等于 0. ...
- RabbitMQ入门-路由-有选择的接受消息
比如一个日志系统,之前的处理方式呢,是各种类型(info,error,warning)的消息都发给订阅者,可是实际情况上不一定都需要.可能A需要error,其他的都不需要.那么就引入了今天的处理方式- ...
- hdu 4333"Revolving Digits"(KMP求字符串最小循环节+拓展KMP)
传送门 题意: 此题意很好理解,便不在此赘述: 题解: 解题思路:KMP求字符串最小循环节+拓展KMP ①首先,根据KMP求字符串最小循环节的算法求出字符串s的最小循环节的长度,记为 k: ②根据拓展 ...
- jenkins学习:jenkins的基本配置
_(:з)∠)_,发现写了gitlab和maven ,但是jenkins的详细步骤没有. 这里整理一下. 1.下载jenkins的war包,无需FQ. 网址:https://jenkins.io/do ...
- Luogu P3239 [HNOI2015]亚瑟王
题目链接 \(Click\) \(Here\) 期望神题.最开始一直尝试推朴素一点的,逻辑上的\(DP\)式子,后来发现一直出锅,可能是我的式子没容斥对... 题解中给出的想法是这样的: 首先,如果直 ...