docker 容器container 镜像image 删除常用备忘
首先是注意:
上面jeecgboot和datahub的容器和镜像都在一起,删除容器的和镜像要注意。
- 要重新部署的话首先要先停掉在跑的容器。
通过docker ps查看
红框部分是jeecgboot的前后端容器,其他的是datahub的容器。
2.Jeecgboot是通过jar包部署在cl-mdm容器中。
3. 部署的过程如下:
上传jar包到/docker/target目录下,
在/docker目录下执行命令进行镜像打包:
docker build -f Dockerfile -t cl-mdm .
然后执行下述命令生成容器:
docker run --name cl-mdm -d -p 9000:8081 --restart always cl-mdm
前面的cl-mdm2是容器名字,后面的cl-mdm是镜像的名字。
4.如果容器中当前有cl-mdm在跑,则需要首先停止容器,再根据容器ID删除掉容器。镜像也删除掉,再执行步骤3进行打包。
停止(指定ID的)容器
这时候发现已经没有这个容器了。
但是容器中还是需要删除它,否则后面再编译跑cl-mdm容器的时候会提示已经有cl-mdm这个容器的存在。所以执行删除指定ID的容器。
怎么发现已经停止的容器?
docker ps
是发现在运行的容器,容器停止掉了需要加一个 -a 参数,字面意思理解应该是all,这样就可以找到已经停止的容器进行删除操作。
docker ps -a
执行:docker container rm c33bcf85690d
必要的时候要把无用的镜像删除掉,为什么会有无用的镜像呢?因为再重新打jeecgboot的jar包生成cl-mdm之前,docker中有一个同名的镜像文件存在。
当用docker build一个同名的镜像后,
会把原来镜像 仓库名、Tag都置为空,给新的镜像留下位置。
这样操作完几次以后就变成
可以通过下面的命令删除仓库中无效的镜像文件
使用命令“docker rmi 镜像ID”删除Nginx(stable-perl)的镜像,只取“IMAGE ID”的前3个字符即可。
docker rmi 镜像ID(IMAGE ID)
清理几次后就干净了,
不过删除镜像之前肯定必须先删除使用该镜像在跑的容器。
5.还有一项就是如果cl-mdm容器启动起来了,但是jeecgboot因为配置或者其他原因报错无法起来怎么办呢?办法就是进入到容器中找到日志文件。
6.找到cl-mdm的启动日志后,下一步就是把容器中的日志文件拷贝到宿主机当中。
执行命令:docker cp 容器ID:/路径 .
注意后面有个.