镜像启动之后成为容器。容器是运行着的镜像。

启动镜像并执行命令

1
$ docker run 镜像名 执行命令

启动镜像并给容器设定主机名

1
$ docker run -h HOSTNAME 镜像名 执行命令

查询容器特定信息

1
$ docker inspect --format {{.NetworkSettings.IPAddress}} 容器名/容器ID

查询容器内文件的变动

1
$ docker diff 容器名/容器ID

查询容器日志

1
$ docker logs 容器名/容器ID

镜像重命名

1
2
$ docker tag 镜像ID 新名字
$ docker image rm 镜像旧名字

删除容器

1
$ docker rm 容器名/容器ID

例子

1
$ docker run -it --name cowsay --hostname cowsay debian bash

在容器内可以安装一些软件,然后把容器留下,也就是转成镜像

1
$ docker commit 容器名称/容器ID 镜像名称

启动镜像并创建数据卷

1
$ docker run -v 容器内路径 镜像名称/容器ID

启动镜像并绑定宿主机数据卷到容器内

1
$ docker run -v 宿主机路径:容器内路径 镜像名称/容器ID

容器与宿主机绑定端口,将主机的端口转发到容器上

1
$ docker run -d -p 主机端口:容器内部端口 镜像名

列出容器与宿主机之间的端口绑定

1
$ docker port 容器名/容器ID

容器连接,创建一个容器,并与目标容器连接。

主容器内部的 /etc/hosts 和环境变量会添加一些目标容器的信息。

1
$ docker run --link 目标容器名/目标容器ID:别名 主容器镜像名 执行命令

将目标容器的数据卷加载到主容器中

1
2
$ docker run -it -h NEWCONTAINER --volumes-from container-test debian /bin/bash
$ ls /data

Dockerfile

Dockerfile 基于一个镜像,创建一个自己的镜像

FROM 指定初始镜像

RUN 指定在容器里执行的 shell 命令

ENTRYPOINT ["/usr/games/cowsay"] docker run 后面的指令会被当做 cowsay 的参数

COPY /host /docker 把文件从主机复制到镜像

VOLUME /data 在容器中的 /data 创建数据卷

进行构建

docker build -t 镜像名 .