安装docker:
代码语言:javascript复制sudo curl -sSL https://get.daocloud.io/docker | sh
注:在CenoOS8上安装docker时可能出现一些错误,可以根据错误提示,用yum erase
删除冲突模块即可。如:yum erase podman buildan
启动docker:
代码语言:javascript复制systemctl start docker
设置docker镜像源:vim /etc/docker/daemon.json
后输入以下内容
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
重启docker:
代码语言:javascript复制systemctl restart docker
列出所有的容器ID:
代码语言:javascript复制docker ps -aq
停止所有的容器:
代码语言:javascript复制docker stop $(docker ps -aq)
删除所有的容器:
代码语言:javascript复制docker rm $(docker ps -aq)
删除所有的镜像:
代码语言:javascript复制docker rmi $(docker images -q)
删除所有不使用的镜像:
代码语言:javascript复制docker image prune --force --all
#或
docker image prune -f -a
删除所有停止的容器:
代码语言:javascript复制docker container prune -f
复制文件:
代码语言:javascript复制docker cp mycontainer:/opt/file.txt /opt/local/
docker cp /opt/local/file.txt mycontainer:/opt/
修改Docker容器启动配置参数:
参考:Docker修改容器参数 docker 修改容器启动参数
代码语言:javascript复制docker update --restart=always 容器名|容器ID
docker 修改容器端口映射
代码语言:javascript复制docker run -d -p 9999:8080 -i -name tomcat8 tomcat:8 主机9999端口映射到8080端口
方法1:
① 删除原有容器docker rm -f 容器名/ID
② 创建新容器:docker run -d -p 8080:8080 -i --name tomcat8 tomcat:8
缺点:相关配置被删除
方法2:修改配置文件
① 暂停docker服务systemctl stop docker
② 进入docker配置文件目录下cd /var/lib/docker/containers/
ls
③ 进入容器ID (ID为文件夹)
④ 修改hostconfig.json
文件vim hostconfig.json
⑤ 修改其中端口值9999为8080 保存退出:wq
⑥ 重启docker服务 systemctl start docker
缺点:暂停docker服务会影响其他容器
注意!!!据我测试,还要修改config.v2.json
中的"ExposedPorts"
!不然还是无法访问端口的。。这个bug我找了快一个小时
方法3:使用docker commit命令创建新镜像
① 停止容器服务docker stop tomcat8
② 构建新镜像docker commit tomcat8 tomcat8_new
③ 使用新镜像重新创建容器docker run -d -p 8888:8080 -i --name tomcat88 tomcat8_new
④ 删除原有容器docker rm tomcat8
⑤ 修改容器名称docker rename tomcat88 tomcat8
优点:什么都不会丢,什么都不影响 缺点:管理镜像成本提升
docker 修改主机映射目录
代码语言:javascript复制docker run -d -p 9999:8080 -i -name tomcat8 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:8
同端口修改方法,方法2中修改的为config.v2.json
文件
备忘:Centos8使用docker迁移typecho博客,这上面讲得很详细。