从开发到部署会用到的 Docker 命令 已翻译 100%

oschina 投递于 2017/10/10 16:45 (共 10 段, 翻译完成于 10-11)
阅读 3374
收藏 244
12
加载中

本文的目的是理解容器开发在目标环境中部署的端到端流程,并列出这些操作所需的 Docker 命令。

1. 介绍

整个流程包括使用代码、依赖软件和配置来开发容器映像,在开发环境中运行和测试容器,将容器映像发布到 Docker Hub,以及最后的部署和在目标环境中运行容器。

本文假设您已经在开发和目标环境中安装了 Docker 引擎。有关安装说明请参阅 6.3

溪边九节
溪边九节
翻译于 2017/10/10 17:48
0

2. 开发容器映像

在构建容器映像之前,你需要创建一个 dockerfile,它包含了所需要的信息。请参考这里来编制一个 dockerfile。

2.1 构建 Docker 容器

$docker build -t containername .

这个命令会使用当前目录下的 Dockerfile。如果 dockerfile 使用了其它文件名或者放在其它位置,可以使用 -f 参数来指定 dockerfile 的名称。“docker build” 命令会构建容器映像,这个容器映像的名称由 “-t” 参数指定。

$docker build -t myapp .

边城
边城
翻译于 2017/10/10 21:13
0

2.2 Docker 映像命名规范

如果你只是在本地使用,那么你可以随意为 Docker 容器命名。它可以像上面那边简单的命名为“myApp”。但是如果你想将映像发布到 Docker Hub,就需要遵循特定的命名规范。这个规范有助于 Docker 工具将容器映像发布到正确的命名空间和仓库。

格式如下:

NameSpace/Repository:Version

现在我们按上面的规范来构建 Docker 映像:

$docker build -t saravasu/techietweak:001 .

我们可以使用“docker tag”命令从已经存在的映像创建新的映像。“docker tag”命令会在下面说明。

2.3 列出 Docker 中所有映像

$docker images

边城
边城
翻译于 2017/10/10 21:22
0

3. 运行容器

3.1 启动 Docker 容器

使用“docker run”命令来启动 Docker 容器。

$docker run -d -p 8080:8080 saravasu/techietweak:001

“-d” 参数会让容器以独立的模式来运行容器,这样即使终端关闭了容器仍然会保持运行。

“-p” 用于映射容器。比如,“-p 8080:8080” 的第一个端口号用在 Docker 主机上,第二个端口号是在 Docker 容器中使用的。根据这个参数的设置,所有对 Docker 主机端口的数据传输都会被转发到对应的 Docker 容器端口。

边城
边城
翻译于 2017/10/10 21:41
2

3.2 查看运行中的容器

$docker ps

从上面的输出我们可以看到 Docker 容器以 “trusting_snyder” 这个名字在运行。

如果要列出所有容器,而不管其状态如何,使用 “-a” 参数。

$docker ps -a

3.3 显示运行中容器的控制台日志

$docker logs <containerName>

ContainerName(容器名称) 可以通过 “docker ps” 命令找到。

3.4 登入容器

$docker exec -it containerId /bin/bash

上面的命令会用容器中的 “bash” shell 给出提示。

边城
边城
翻译于 2017/10/10 21:45
0

3.5  停止容器运行

$docker stop <containername>

3.6  从 Docker 中删除容器映像

$docker rm imageId

使用 “docker images” 或 “docker images -a” 命令找到 imageId(映像 ID)。

$docker rmi -f <List Of Image Ids>

上面的命令会强制删除指定的映像。

3.7 清理 Docker / 删除本地 Docker 中所有容器映像

$docker rmi -f $(docker images | tr -s ' ' ' ' | cut -d' ' -f3)
边城
边城
翻译于 2017/10/10 21:47
0

4. 发布容器映像

Docker 容器映像可以发布到本地库或公共的 Docker Hub。两种情况所使用的命令的操作过程一样。为了将你的 Docker 映像发布到 Docker Hub,你得先在 http://hub.docker.com 创建自己的命名空间和仓库。

我自己的命名空间是 “saravasu”,当前练习使用的仓库是 “techietweak”。

4.1 登录 Docker Hub

$docker login

如果你想登录本地库,请先提供 URL。如果没有指定 URL,那么这个命令会登录 Docker Hub。

$docker login http://localhost:8080

边城
边城
翻译于 2017/10/10 21:51
0

4.2 标记容器映像

在把容器映像推送到 Docker Hub 之前,必须按指定的格式对其进行标记:<Namespace>/<Repository>:<Version>。如果你没有指定版本(version),它会使用默认的 “default”。下面的命令演示了标记映像:

$docker tag myapp:latest saravasu/techietweak:001

4.3 将 Docker 映像推送到 Docker Hub

$docker push saravasu/techietweak:001

4.4 在 Docker Hub 中检查容器映像

现在使用你的账号登录 Docker Hub 并检查映像的仓库中进行检查。

边城
边城
翻译于 2017/10/10 21:56
1

5 部署容器

5.1 拉取 Docker 容器映像

在主机的目标环境中登录 Docker Hub 并从 Docker Hub 拉取容器映像。如果你想从私有的船坞(指 Docke 映像库)中拉取,需要使用命令 “$docker login <hostname>” 来指定私有仓船坞的主机名(hostname)。

$docker login

由于上面的命令没有指定主机名称,它会登录 https://hub.docker.com

$docker pull saravasu/techietweak:001

5.2 检查映像

docker pull 命令会从 Docker Hub 下载容器映像。我们可以使用 “docker images” 命令来对其进行检查。

 $docker images

边城
边城
翻译于 2017/10/10 22:00
0

5.3 运行容器

现在我们用与在开发环境下运行测试相同的方法来运行 Docker 容器。之前做过,轻车熟路。

$docker run -d -p 8080:8080 saravasu/techietweak:001

docker run 命令会启动容器。可以使用 “docker ps” 命令来检查。Docker 创建并运行了一个新的容器,其名称为 “naughty_lewin”。

我们在上面看到 Docker 引擎为运行的容器提供了一个随机的名称,这在自动化过程中可能会产生问题,所以最好是按我们的意愿指定一个名称。这可以由 “-name” 参数实现。

$docker run -d -p 8080:8080 --name "myNodeJsWebContainer" saravasu/techietweak:001

6. 总结

本文涵盖了开发一个容器映像的流程和必要的命令,讲解了在本地环境运行,以及将映像发布到 Docker Hub,并在目标环境运行容器。想进一步研究,或者阅读详细的文档,请移步 Docker 网站 [参考 6.1]。

边城
边城
翻译于 2017/10/10 22:07
0
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(8)

晒太阳的小猪
晒太阳的小猪
docker本地源才好玩
氓羽
氓羽
支持
Loveni
Loveni
不懂 路过mark
LarryYan
LarryYan
很基础
慢慢爬
慢慢爬
干货
bkkkd
bkkkd
不错。
Anjelo
Anjelo
好东西。
SHIHUAMarryMe
SHIHUAMarryMe
返回顶部
顶部