Docker 入门系列(8)— 免 sudo 使用 docker 命令、进入未启动的容器
如何进入未启动的容器内部在某些场景下,我们进入容器修改了配置信息或者系统配置之后重启容器,发现容器启动不了,通过日志发现原来是我们修改出错,此时我们想把配置改回来但发现因为容器启动不了,使用 docker exec 是无法进入容器内部了,这种情况下的解决办法是:先从容器内部把配置文件复制到宿主机内,在宿主机中修改正确后再复制回容器内。 如://从容器内把 Nginx.conf 复制到宿主机当前目录
·
1. 免 sudo 使用 docker 命令
- 如果还没有
docker group
就添加一个
sudo groupadd docker
- 将用户加入该
group
内
sudo gpasswd -a ${USER} docker
- 重启
docker
服务
sudo service docker restart
- 切换当前会话到新
group
或者重启 X 会话
newgrp - docker
注意:最后一步是必须的,否则因为 groups
命令获取到的是缓存的组信息,刚添加的组信息未能生效,所以 docker images
执行时同样有错。
或者执行下面语句:
sudo service docker start #启动docker服务
sudo usermod -aG docker ${USER} #当前用户加入docker组
执行完上面命令后,还需要退出系统(命令 exit
),再重新登录一次,这样才能让修改用户组的命令 usermod
生效。
2. 如何进入未启动的容器内部
在某些场景下,我们进入容器修改了配置信息或者系统配置之后重启容器,发现容器启动不了,通过日志发现原来是我们修改出错,此时我们想把配置改回来但发现因为容器启动不了,使用 docker exec
是无法进入容器内部了,这种情况下的解决办法是:先从容器内部把配置文件复制到宿主机内,在宿主机中修改正确后再复制回容器内。 如:
# 从容器内把 Nginx.conf 复制到宿主机当前目录
docker cp 容器ID:/etc/Nginx/Nginx.conf .
# 修改 Nginx.conf
vim Nginx.conf
# 把修改后 Nginx.conf 复制回容器内部
docker cp Nginx.conf 容器ID:/etc/Nginx/Nginx.conf
- 在容器中安装 ping
ping
命令在测试 IP
连通性时经常用到,在容器中安装 ping
的方法是:
apt-get update && apt-get install iputils-ping
- docker 运行启动就退出问题
更多推荐
已为社区贡献15条内容
所有评论(0)