本文介绍 Docker 的基本概念,如何查看镜像、获取镜像、运行镜像,如何管理容器,配置容器。
1. Docker 的三个基本概念
- 镜像(image)
docker image 是一个只读的模板,image 用来创建 docker 容器,一个镜像可以创建多个容器。 - 容器(container)
docker 利用容器独立运行的一个或一组应用。容器就是用镜像创建的运行实例。 - 仓库(repository)
仓库是集中存放镜像文件的场所。
2. 镜像相关命令
# 列出本地主机上的镜像
docker images [options]
-a:显示所有镜像
-q:只显示镜像id
# 查询镜像
docker search [options] 镜像名
--limit:指定显示多少条数据
# 拉取镜像
docker pull 镜像名[:TAG]
# 查看镜像、容器、数据卷所占的空间
docker system df
# 删除镜像
docker rmi 镜像名/镜像ID
-f:强制删除
# 删除全部镜像
docker rmi -f $(docker images -aq)
3. 容器相关命令
# 启动新容器
docker run [options] 镜像名 [commond][arg...]
-d:后台运行容器并返回容器id
-i:以交互模式运行容器
-t:为容器分配一个伪输入终端
-name:指定容器的名字
-p:指定端口映射
# 查看正在运行的容器
docker ps [options]
-a:显示所有容器(正在运行和停止运行的)
-q:只显示容器id
# 启动停止的容器
docker start 容器id/容器名
# 停止容器
docker stop 容器id/容器名
# 强制停止容器
docker kill 容器id/容器名
# 重启容器
docker restart 容器id/容器名
# 删除容器
docker rm -f 容器id
# 删除所有容器
docker rm -f $(docker ps -aq)
# 查看容器日志
docker logs 容器id
# 查看容器内运行的进程
docker top 容器id
# 查看容器内部细节
docker inspect 容器id
# 重新以交互方式进入容器(exit退出不会导致容器停止)
docker exec -it 容器id /bin/bash
# 重新以交互方式进入容器(exit退出会导致容器停止)
docker attach 容器id
# 拷贝容器内的数据到主机
docker cp 容器id:容器内路径 主机路径
# 导出容器为tar包
docker export 容器id > 文件名.tar
# 导入tar包为镜像
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
# 提交容器副本使之成为一个新的镜像
docker commit -m="提交的描述信息" -a="作者" 容器id 新镜像名[:版本号]
4. 容器数据卷
# 将容器里的目录与主机的目录映射,数据互通
docker run -it -v 主机目录:容器目录 --privileged=true --name=ubuntu ubuntu
# 添加ro,表示容器里该目录下只能读
docker run -it -v 主机目录:容器目录:ro --privileged=true --name=ubuntu ubuntu
# 容器间数据卷的继承(容器ubuntu2继承容器ubuntu的数据卷映射关系)
docker run -it -volumns-from ubuntu --privileged=true --name=ubuntu2 ubuntu