Docker教程(1)
文章目录
一、Docker架构
1. 镜像(image)
Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
2. 容器(container)
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
3. 仓库(repository)
仓库可看成一个代码控制中心,用来保存镜像。
二、Docker hello world
docker run ubuntu:15.10 /bin/echo "Hello world"
Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”,然后输出结果。
- docker: Docker 的二进制执行文件。
- run: 与前面的 docker 组合来运行一个容器
- ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
- /bin/echo “Hello world”: 在启动的容器里执行的命令
三、运行交互式容器
docker run -i -t ubuntu:15.10 /bin/bash
- -t: 在新容器内指定一个伪终端或终端。
- -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
上图中root@83535ca40430:/#
表明已进入Ubuntu15.0系统的容器,使用cat /proc/version
查看当前系统的版本信息和当前目录下的文件列表。可以通过运行exit
命令或者使用ctrl+D
来退出容器
四、启动容器
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
长字符串叫做容器 ID,对每个容器来说都是唯一的,我们可以通过容器 ID 来查看对应的容器发生了什么。
首先,我们需要确认容器有在运行,可以通过 docker ps 来查看:
输出详情:
- CONTAINER ID: 容器 ID。
- IMAGE: 使用的镜像。
- COMMAND: 启动容器时运行的命令。
- CREATED: 容器的创建时间。
- STATUS: 容器状态。
- 状态有7种:created(已创建)、restarting(重启中)、running 或 Up(运行中)、removing(迁移中)、paused(暂停)、exited(停止)、dead(死亡)
- PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
- NAMES: 自动分配的容器名称。
在宿主主机内使用 docker logs + 容器ID/容器名
,查看容器内的标准输出
五、停止容器
可以使用docker stop + 容器ID/容器名
停止容器
886!