docker的简单使用

镜像

下载镜像

1
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

运行

1
2
3
docker run -it --rm \
nginx \
bash

it 这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
--rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。 我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 –rm 可以避免浪费空间。

nginx:这是指用 nginx 镜像为基础来启动容器。
bash:放在镜像名后的是 命令,这里我们希望有个交互式 Shell,因此用的是 bash

列出镜像

想要列出已经下载的镜像,使用docker image ls 命令。

删除镜像

如果要删除本地镜像,使用docker image rm XXX

虚拟镜像

可能因为docker build新的镜像导致旧的镜像的名称被新的取代。有很多<none>的情况

1
2
3
4
5
6
7
8
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
blog latest 132adcbec4fd 2 weeks ago 944MB
<none> <none> 284197648c09 2 weeks ago 944MB
<none> <none> 5a582e38aa30 2 weeks ago 947MB
<none> <none> 20e47abe4f10 2 weeks ago 947MB
<none> <none> 3d8a5112aa7d 2 weeks ago 947MB
<none> <none> 748e5c90832c 2 weeks ago 910MB
python 3.5 67f4589d3c88 7 months ago 908MB

有一些虚拟镜像已经没有用了,那么可以删除。他的指令是docker image prune

进入镜像

1
2
3
4
5
方式一:
docker exec -it XXX bash

方式二:
docker run --rm -it 6b4faa0b6de5 bash

容器

volumes 数据卷

1
2
3
4
5
6
7
8
9
10
11
12
version: "3.2"
services:
web:
image: alpine
volumes:
- ~/test:/data

***备注***
`容器和主机`: 在services定义(web)中使用volumes将主机的test挂载到容器的/data中
`容器和容器`:可以通过在和service平级的volumes中定义volumes