常用的docker命令
#构建一个镜像
docker image build -t hellonode:local .
#查看镜像
docker images / docker image ls
#运行镜像
docker container run --name hellonode -d -p 3000:3000 hellonode:local
#查看进程
docker ps -a / docker container ls
#进入已启动的容器内,新启一个进程,执行命令。
docker exec -it containerName /bin/bash
#停止docker中mysql容器
docker stop mysql-latest
#移除docker中mysql容器
docker rm 9c7aafddb428
#移除镜像
$ docker rmi springboot:latest
#强制删除 增加 -f 参数
$ docker rmi -f ed603a4c67bb
#重启docker
systemctl restart docker
#关闭docker
systemctl stop docker
#将镜像推送到Docker Hub上你的仓库中
docker image tag hellonode:local mengzyou/hellonode:v1.0
docker image push mengzyou/hellonode:v1.0
1、查看可用的 Redis 版本
访问 Redis 镜像库地址: https://hub.docker.com/_/redis?tab=tags。
可以通过 Sort by 查看其他版本的 Redis,默认是最新版本 redis:latest。
2、取最新版的 Redis 镜像
这里我们拉取官方的最新版本的镜像:
docker pull redis:latest
3、查看本地镜像
使用以下命令来查看是否已安装了 redis:
docker images
4、准备redis的配置文件
因为需要redis的配置文件,这里最好还是去redis的官方去下载一个redis使用里面的配置文件即可
redis中文官方网站:http://www.redis.cn/download.html
下载后解压出来:
这个redis.conf文件就是咱们需要的,为了保险,还是拷贝一下,做个备份。
5、配置redis.conf配置文件
修改redis.conf配置文件:
主要配置的如下:
bind 127.0.0.1 #注释掉这部分,使redis可以外部访问
daemonize no#用守护线程的方式启动
requirepass 你的密码#给redis设置密码
appendonly yes#redis持久化 默认是no
tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
6、创建本地与docker映射的目录,即本地存放的位置
创建本地存放redis的位置
- 可以自定义,因为我的docker的一些配置文件都是存放在/data目录下面的,所以我依然在/data目录下创建一个redis目录,这样是为了方便后期管理
mkdir /data/redis
mkdir /data/redis/data
把配置文件拷贝到刚才创建好的文件里
- 因为我本身就是Linux操作系统,所以我可以直接拷贝过去,如果你是windows的话,可能需要使用ftp拷贝过去,或者直接复制内容,然后粘贴过去。
cp -p redis.conf /data/redis/
7、启动docker redis
启动
#
docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
#下面的多了 --privileged=true --restart=always
docker run -p 6379:6379 --name redis --privileged=true -v /data/redis/redis.conf:/usr/local/etc/redis/redis.conf -v /data/redis/data:/data -v /etc/localtime:/etc/localtime:ro --restart=always -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
参数解释:
-p 6379:6379:把容器内的6379端口映射到宿主机6379端口;(前表示主机部分,后表示容器部分)
--name redis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载目录,规则与端口映射相同。
-d redis 表示后台启动redis
-v /data/redis/redis.conf:/etc/redis/redis.conf:把宿主机配置好的redis.conf放到容器内的这个位置中
-v /data/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份
redis-server /etc/redis/redis.conf:这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动
–appendonly yes:redis启动后数据持久化
--privileged:大约在0.6版,privileged被引入docker。使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。
--restart=always:开机启动
8、查看是否启动成功
查看是否成功启动:docker ps
truedei@truedei:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
85cb7d83a2ff redis "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 0.0.0.0:6379->6379/tcp redis
0a122a08125f mysql:5.7.29 "docker-entrypoint.s…" 5 weeks ago Up About an hour 0.0.0.0:3306->3306/tcp, 33060/tcp mysql57
truedei@truedei:~$
可以查看一下日志:docker logs redis
truedei@truedei:~$ sudo docker logs redis
1:C 29 May 2020 01:16:22.107 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 29 May 2020 01:16:22.107 # Redis version=6.0.3, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 29 May 2020 01:16:22.107 # Configuration loaded
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 6.0.3 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 1
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
1:M 29 May 2020 01:16:22.108 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1:M 29 May 2020 01:16:22.108 # Server initialized
1:M 29 May 2020 01:16:22.108 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1:M 29 May 2020 01:16:22.108 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
1:M 29 May 2020 01:16:22.108 * Ready to accept connections
truedei@truedei:~$