镜像(Image
)和容器(Container
)的关系,就像是面向对象程序设计中的 类
和 实例
一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的 root
文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。
容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。
- 文件拷贝
docker cp /home/ubuntu/Java/ROOT f853e6b9cc5f:/var/tmp/tomcat/apache-tomcat-8.5.8/webapps/
- 常用命令
# 查看所有镜像 docker images # 删除镜像 Image docker rmi 5b821518a2dd # 正在运行容器 docker ps # 查看docker容器 docker ps -a # 启动tomcat:7镜像 docker run -p 8080:8080 tomcat:7 # 以后台守护进程的方式启动 docker run -d tomcat:8 # 停止一个容器 docker stop b840db1d182b # 进入一个容器 docker attach d48b21a7e439 # 进入正在运行容器并以命令行交互 docker exec -it e9410ee182bd /bin/sh # 以交互的方式运行 docker run -i -t -p 8081:8080 tomcat:7 /bin/bash -i:表示以“交互模式”运行容器 -t:表示容器启动后会进入其命令行 -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
- 删除停止的容器
docker rm $(docker ps --all -q -f status=exited)
-
删除没有使用的镜像
docker rmi -f $(docker images | grep "<none>" | awk "{print \$3}")