先看下操作,真是一顿操作猛如虎,一看战绩0-5
首先配置harbor仓库,拉取仓库中的redis镜像
[root@localhost /]# docker pull hub.vrgv.com/devops/redis:20210104
[root@localhost /]# docker run -di --privileged=true --name redis hub.vrgv.com/devops/redis:20210104 /usr/sbin/init
注:我这里给容器开启了最高权限,忘记映射端口号了,也就是容器内部开多少个服务,我外部也无法访问到
进入容器修改了redis的配置,修改完,发现我的redis咋连接不上呢,开始检查防火墙规则,检查端口号蒙了,没有映射!
ss -nltp grep 6379
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f43e2f0edd2d hub.vrgv.com/devops/redis:20210104 "/usr/sbin/init" 3 minutes ago Up 3 minutes 6379/tcp redis
开始想办法解决没有映射端口号的问题,第一我redis好不容易配置完的,不想再配置一遍,还有就是有没有直接修改的方案,懒得要死,不想commit后在docker run了。
找到了度娘,帮我解决了这个问题
步骤:
1.查看容器挂载位置
[root@localhost /]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 8.8M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/centos-root 8.0G 5.6G 2.5G 70% /
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 393M 0 393M 0% /run/user/0
overlay 8.0G 5.6G 2.5G 70% /vrgv/software/overlay2/50878e5cd036dbc68a07bebe1e38e7c7843f6daf43bd3a73c84a73a97fc337ec/merged
shm 64M 0 64M 0% /vrgv/software/containers/f43e2f0edd2d5e92714feaf4419172e9d0e2e4db5dcd324b5251bf3eff138783/mounts/shm
我的是在/vrgv/software目录下,默认的是在/var/lib/下,我自定义修改过位置
2.查看容器ID号
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f43e2f0edd2d hub.vrgv.com/devops/redis:20210104 "/usr/sbin/init" 10 minutes ago Up 6 seconds 6379/tcp redis
3.关闭容器
[root@localhost /]# docker stop redis
4.修改容器配置文件
进入该容器的挂载位置
[root@localhost /]# cd /vrgv/software/containers/f43e2f0edd2d5e92714feaf4419172e9d0e2e4db5dcd324b5251bf3eff138783/
f43e2f0edd2d5e92714feaf4419172e9d0e2e4db5dcd324b5251bf3eff138783:第2步查看到的ID号,或者通过docker inspect查看容器具体信息,也会有显示
修改配置文件
[root@localhost f43e2f0edd2d5e92714feaf4419172e9d0e2e4db5dcd324b5251bf3eff138783]# vi hostconfig.json
原始是这个样子:"PortBindings":{},
修改成"PortBindings":{"6379/tcp":[{"HostIp":"","HostPort":"6379"}]},
前面的6379是容器内部的端口号,后面的是要映射出去的端口号,如果是修改端口号,那就更简单,直接修改数字即可
这时候千万不要重启容器,要重新docker引擎才会生效,要不然会恢复原始配置
[root@localhost /]# systemctl restart docker
[root@localhost /]# docker start redis
redis
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f43e2f0edd2d hub.vrgv.com/devops/redis:20210104 "/usr/sbin/init" 28 minutes ago Up 2 seconds 0.0.0.0:6379->6379/tcp redis
好了,修改完成了
修改配置文件缺点:需要重新启动整个docker引擎!
关键词:docker打开容器后,更改设置文件处理忘记映射端口号问题