安装docker:

sudo curl -sSL https://get.daocloud.io/docker | sh

:在CenoOS8上安装docker时可能出现一些错误,可以根据错误提示,用yum erase删除冲突模块即可。如:yum erase podman buildan

启动docker:

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:

systemctl restart docker

列出所有的容器ID:

docker ps -aq

停止所有的容器:

docker stop $(docker ps -aq)

删除所有的容器:

docker rm $(docker ps -aq)

删除所有的镜像:

docker rmi $(docker images -q)

删除所有不使用的镜像:

docker image prune --force --all
#或
docker image prune -f -a

删除所有停止的容器:

docker container prune -f

复制文件:

docker cp mycontainer:/opt/file.txt /opt/local/
docker cp /opt/local/file.txt mycontainer:/opt/

修改Docker容器启动配置参数:

参考:Docker修改容器参数
docker 修改容器启动参数

docker update --restart=always 容器名|容器ID

docker 修改容器端口映射

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 修改主机映射目录

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博客,这上面讲得很详细。