自己制作redis 和mongo 镜像

时间:2023-03-09 01:01:04
自己制作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 /]#