镜像启动之后成为容器。容器是运行着的镜像。
启动镜像并执行命令
1 | docker run 镜像名 执行命令 |
启动镜像并给容器设定主机名
1 | docker run -h HOSTNAME 镜像名 执行命令 |
查询容器特定信息
1 | docker inspect --format {{.NetworkSettings.IPAddress}} 容器名/容器ID |
查询容器内文件的变动
1 | docker diff 容器名/容器ID |
查询容器日志
1 | docker logs 容器名/容器ID |
镜像重命名
1 | docker tag 镜像ID 新名字 |
删除容器
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 | docker run -it -h NEWCONTAINER --volumes-from container-test debian /bin/bash |
Dockerfile
Dockerfile 基于一个镜像,创建一个自己的镜像
FROM 指定初始镜像
RUN 指定在容器里执行的 shell 命令
ENTRYPOINT ["/usr/games/cowsay"] docker run 后面的指令会被当做 cowsay 的参数
COPY /host /docker 把文件从主机复制到镜像
VOLUME /data 在容器中的 /data 创建数据卷
进行构建
docker build -t 镜像名 .