docker 镜像与容器
Docker中通过模板创建镜像,Docker容器、仓库及数据管理
一 停止、删除所有的docker容器和镜像
docker-compose exit 1时,可以尝试删除所有镜像和容器,先停止试下
列出所有的容器 ID
docker ps -aq
停止所有的容器
docker stop $(docker ps -aq)
删除所有的容器
docker rm $(docker ps -aq)
删除所有的镜像
docker rmi $(docker images -q)
复制文件
docker cp mycontainer:/opt/file.txt /opt/local/docker cp /opt/local/file.txt mycontainer:/opt/
现在的docker有了专门清理资源(container、image、网络)的命令。 docker 1.13 中增加了docker system prune的命令,针对container、image可以使用docker container prune、docker image prune命令。
docker image prune --force --all
或者docker image prune -f -a
: 删除所有不使用的镜像
docker container prune
: 删除所有停止的容器
作者:POPMUISE
链接:https://www.imooc.com/article/details/id/32810
来源:慕课网
2. Docker - Docker Volume及Volume命令详解
docker volume prune
移除未使用的数据卷。
3. 导入导出
镜像重命名(新建) docker tag 源
docker history 镜像名
docker save -o 目标名.tar 源镜像
docker load < 目标名.tar
- import与load的区别:
import可以重新指定镜像的名字,docker load不可以 - export 与 save 的区别:
1、export导出的镜像文件大小,小于 save保存的镜像。
export 导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史
4. 镜像构建
- 根据模板构建(比拉取大很多):
从 http://openvz.org/Download/templates/precreated 下载,
cat 文件.tar.gz | docker import - 镜像名 - 启动一个镜像,输出信息后关闭容器
:~$ docker run nginx /bin/echo "hello docker"
5. 容器
批量关闭容器(删除所有): docker rm -f $(docker ps -a -q)
- 生产方式进入容器 .sh,使用容器id
#!/bin/bash
# 定义进入仓库函数
docker_in(){
NAME_ID=$1
PID=$(docker inspect --format {{.State.Pid}} $NAME_ID)
nsenter --target $PID --mount --uts --ipc --net --pid
}
docker_in $1
- 基于容器创建镜像
docker export [容器id] > 模板文件名.tar