centos安装docker
Install Docker Engine on CentOS | Docker Docs
下载docker
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动
sudo systemctl start docker
开机启动
sudo systemctl enable docker
修改iptables(重要!!!)
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
修改为:
ExecStart=/usr/bin/dockerd -H fd:// --iptables=false --containerd=/run/containerd/containerd.sock
systemctl stop firewalld
systemctl start firewalld
systemctl daemon-reload
systemctl restart docker
官方镜像地址:
Dockerhttps://hub.docker.com/_/redis
1)解压tar.gz
tar -xzvf xx.tar.gz
2)防火墙
放行
firewall-cmd --zone=public --add-port=6379/tcp --permanent
查看端口是否放行
firewall-cmd --zone=public --query-port=6379/tcp
重载防火墙
firewall-cmd --reload
3)进入容器内部 // 这个id是docker ps得到的id
docker exec -it f774a1170aae /bin/bash
接着我们查看容器内部redis的配置
root@f774a1170aae:/data# cd /etc/redis/
root@f774a1170aae:/etc/redis# ls
redis.conf
root@f774a1170aae:/etc/redis# cat redis.conf
bind 0.0.0.0
protected-mode no
appendonly yes
之所以之前是这个路径,是因为我们启动redis时指定的:
docker run --name myredis -p 6379:6379 -v /data/redis/data:/data -v /data/redis/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
执行容器内部的redis-cli
docker exec -it 7a1b2bf640b9 redis-cli
4)查看启动日志
sudo docker logs myredis
5)删除镜像
docker image rm redis
6)运行redis和nginx 必须用 host网络才行,实验了几天得出这个参数!!!(技巧:再-d后直接加网络参数)
sudo docker run -p 6379:6379 --name myredis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d --net=host redis:6.0.20 redis-server /etc/redis/redis.conf --appendonly yes
docker run -d --net="host" -p 80:80 --name mynginx nginx
7)查看启动着的软件
启动着的
docker ps
包含没有启动的
docker ps -a
暂停然后重启
docker stop myredis
docker start myredis
8)docker重启后,镜像也跟着启动
// 设置redis会跟着docker一块重启
docker update --restart=always myredis
// 重启docker
sudo systemctl restart docker
// 查看docker内进程,发现所有的进程都还在
docker ps -a