文章简介
本篇主要是讲述了Docker的基础操作,旨在加深对Docker的了解。
国际惯例,“Hello world”
Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。
示例:输出Hello world
docker run ubuntu:15.10 /bin/echo "hello world"
示例说明:
docker: Docker 的二进制执行文件
run: 与前面的docker组合来运行容器
ubuntu:15.10: 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库下载公共镜像
/bin/echo “Hello world”: 在启动的容器里执行命令
以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”,然后输出结果
入门操作
1. 运行交互式的容器
通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力,通过"exit" or ctrl+d 退出容器
2. 创建并运行容器(后台模式)
使用以下命令创建一个以进程方式运行的容器
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec(下面会介绍到)
在输出中,我们没有看到期望的 “hello world”,而是一串长字符
2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
这个长字符串叫做容器 ID,对每个容器来说都是唯一的,我们可以通过容器 ID 来查看对应的容器发生了什么。
首先,我们需要确认容器有在运行,可以通过 docker ps
来查看:
3. 查看所有容器
命令docker ps -a
输出详情介绍:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态,共7种。
代码 | 说明 |
---|---|
created | 已创建 |
restarting | 重启中 |
running 或 Up | 运行中 |
removing | 迁移中 |
paused | 暂停 |
exited | 停止 |
dead | 死亡 |
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。
补充知识
docker ps -l
查询最后一次创建的容器
4. 查看容器的标准输出
在宿主主机内使用 docker logs
命令,查看容器内的标准输出:
docker logs 容器id/容器名
示例:docker logs -f bf08b7f2cd89
参数-f : 让docker logs 像使用tail -f 一样来输出容器内部的标准输出
5. 停止容器
停止容器:docker stop 容器id/容器名
进阶操作
关于查看Docker客户端所有选项:
docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。
1. 镜像管理
1.1 查找镜像
从 Docker Hub 网站来搜索镜像
Docker Hub 网址为: https://hub.docker.com/
使用 docker search
命令来搜索镜像
比如我们需要一个 httpd 的镜像来作为我们的 web 服务。我们可以通过 docker search
命令搜索 httpd 来寻找适合我们的镜像。
输出字段说明:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
STARS: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
注意:docker search 本质上也是去官方获取镜像信息,当然,你也可以自定义查询地址!
1.2 获取镜像
docker pull
命令可以从镜像仓库拉取公共镜像
示例:例如拉取ubuntu镜像
docker pull ubuntu
1.3 查看本地镜像
docker images
各个选项说明:
REPOSITORY: 表示镜像的仓库源
TAG: 镜像的标签
IMAGE ID: 镜像ID
CREATED: 镜像创建时间
SIZEÿ