马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Docker 有两个核心概念:镜像是静态只读的模板,容器是镜像的运行实例,多一层可写的文件层,里面的应用进程处于运行状态。可以类比「类—实例」。本文把镜像的搜索、拉取、查看、删除,以及容器的创建、查看、启停、删除、进入、退出和信息查看,按命令逐条讲清楚。
一、Docker 镜像
运行容器前本地必须有对应镜像,本地没有时 Docker 会先去默认仓库拉,也可以配置成私有仓库。
搜索镜像
docker search 镜像名称
docker search centos
下载镜像
# 不指定版本,默认走 latest
docker pull centos
# 直接指定版本
docker pull centos:版本号
查看本地镜像
docker images
Docker 默认安装目录是 /var/lib/docker:
cd /var/lib/docker/containers
ls
删除镜像
docker rmi 镜像ID或标签
docker rmi hello-world:latest
docker rmi -f centos:版本号
如果提示镜像被占用,要先停掉用到它的容器,再删容器、删镜像。-f 是强制删除,哪怕有容器依赖也删;不过一般不建议这么干,正解是先清依赖容器再删镜像。
二、Docker 容器
创建容器
# 不指定名字,Docker 随机生成
docker create -it centos:latest
# 指定容器名
docker create -it --name tomcat01 centos:latest
| 参数 | 含义 |
| create | 创建容器的关键字 |
| -it | 两个参数:-i 为交互功能,-t 提供伪终端 |
| --name | 指定生成的容器名,可省略,省略则自动生成 |
| centos:latest | 镜像名:版本(或镜像 ID),Docker 会先查本地,没有就去公有仓库拉 |
查看容器
docker ps # 当前运行的容器
docker ps -a # 全部容器
启停容器
docker start 容器ID或name
docker stop 容器ID或name
docker restart 容器ID或name
删除容器
docker rm 容器ID
| 选项 | 含义 |
| -f, --force=false | 是否强行停止并删除一个运行中的容器 |
| -l, --link=false | 删除容器的连接,但保留容器 |
| -v, --volumes=false | 删除容器挂载的数据卷 |
批量清理的几种写法:
docker rm $(docker ps -aq) # 删掉全部未运行的容器
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
docker rm $(docker ps -q -f status=exited) # 只删 Exited 状态的
docker container prune # Docker 1.13+ 删除孤立容器
进入容器
docker exec -it 容器ID/容器NAME /bin/bash
# 简写
docker exec -it 容器ID/容器NAME bash
注意:只有容器处于 UP(已启动)状态才能进终端。
创建、启动、进入一体
run 命令等于 create + start。
dockerrun -it centos:latest /bin/bash
端口映射:小写 -p 指定映射,可写多条;大写 -P 让 Docker 随机映射一个 49000~49900 之间的端口。
docker run -it -p 7001:8001 centos:latest /bin/bash
docker run -it -P --name tomcat03 centos:latest /bin/bash
想让容器在后台守卫生效运行,加 -d:
docker run -it -d --name webapp centos:latest
docker exec -it webapp /bin/bash
| 参数 | 含义 |
| -p | 端口映射,格式为主机端口:容器端口 |
| -P | 大写,随机映射 49000~49900 端口 |
| -d | 后台运行模式 |
退出容器
- 想继续让容器跑在后台:先按 Ctrl+P,再按 Ctrl+Q。
- 想结束容器:按 Ctrl+D 或输入
exit。
查看容器内部信息
已进入容器时,执行这三个命令:
hostname # 查看主机名
ip addr # 查看 IP 地址
env # 查看环境变量
在宿主机上不用进容器也能取:
docker exec 容器ID/容器NAME hostname
docker exec 容器ID/容器NAME ip addr
docker exec 容器ID/容器NAME env
更推荐 docker inspect,它返回一个 JSON 字符串,以 key-value 形式把容器信息列得很全:
docker inspect 容器ID/容器NAME
小结
镜像操作就四个动词:search、pull、images、rmi;容器操作是 create、ps、start/stop/restart、rm、exec。日常最常用的是 docker run -d -p --name 这一条组合,再靠 docker exec -it 进去排查。删镜像前先清容器,能省掉不少强制删除带来的麻烦。
qidao123.com企服评测-应用市场 编辑提示 |