镜像
查看镜像
docker images
| REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
|---|---|---|---|---|
| 镜像名称 | 标签(版本) | 镜像id | 创建时间 | 镜像大小 |
拉取镜像
#docker pull <镜像名称:标签>(不写标签默认latest)
docker pull nginx:1.2
删除镜像
docker rmi <容器名称>
设置镜像标签
#docker tag <目标镜像:标签> <新镜像名称:标签>
docker tag nginx:1.2 my-nginx:v1
构建镜像(根据容器)
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
- -m: 提交的描述信息
- -a: 指定镜像作者
- e218edb10161: 容器 ID
- runoob/ubuntu:v2: 指定要创建的目标镜像名(新的容器名称)
-
构建镜像(根据dockerfile)
容器
查看容器
```
docker ps -a
docker ps -a -f ancestor=hello-world #根据镜像名称过滤
```
- **-a**:查询所有容器
- **-f**:过滤
创建容器
```
docker run -it ubuntu /bin/bash
docker run -itd --name ubuntu-test ubuntu /bin/bash
docker run -d -P training/webapp python app.py
docker run -d -p 5000:5000 training/webapp python app.py
docker run -it -v /home:/home node:alpine
docker run -d --name nodeapp -p 3000:3000 -v /home/docker/nodeApp:/home/node -w /home/node node npm run start #启动一个node应用
```
- **-i**: 交互式操作。
- **-t**:终端
- **-d**:不进入容器后台运行
- **--name**: 容器的名称
- **-P** ——将容器内部使用的网络端口随机映射到我们使用的主机上
- **-p** —— 指定端口
- **-v /home:/home**:表示挂载主机的/home目录到容器的/home目录
- **-w:** 将该目录设置成工作目录,能直接执行npm命令
- **--rm**:容器终止运行后,自动删除容器文件
- **ubuntu**: ubuntu 镜像。
- **/bin/bash**:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
进入容器
- exec
**退出时候不会导致容器停止**
```
docker exec -it <容器 ID> /bin/bash
docker exec -it 243c32535da7 /bin/bash
```
- attach
**退出容器时会导致容器停止**
```
docker attach <容器 ID>
docker attach 1e560fca3906
```
启动容器
```
docker start <容器 ID>
```
暂停容器
```
docker stop <容器 ID>
```
重启容器
```
docker restart <容器 ID>
```
删除容器
```
#删除单个容器
docker rm -f <容器 ID>
#删除多个容器,-f后面可接多个容器id但必须空格隔开
docker rm -f <容器 ID> <容器 ID> <容器 ID> ..
```
导出容器
(待)
导入容器
(待)
查看容器日志
(待)
查看容器映射的端口
(待)
DockerFile
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
compose
(待)