Docker新用户技巧
作者:Anais Dotis-Georgiou / 用例,开发者
2018年8月7日
导航到
本文是为了配合“使用Loud ML & Docker进行时间序列预测将机器学习模型应用于InfluxDB”一文,为Docker新手而写。
我通常对项目过于乐观地期待它们“多么容易”完成。这可能是由于与知识渊博且支持我的人一起工作,让我觉得任何事都是可能的。我对Docker新手,并认为使用Docker会是一件轻而易举的事(向@noahcrowley致敬,他耐心地帮助了我)。结果发现,学习曲线有点陡。为了帮助您快速掌握,我想分享我所犯的错误以及如何避免它们。
<figcaption> 第一天后可爱的Docker鲸鱼开始看起来像什么</figcaption>
错误一: 使用docker container ls
列出运行中的容器。 提示: 为什么打那么多字?使用docker ps
列出运行中的容器,使用docker ps -a
列出所有容器。
错误二: 我创建了一个配置错误的容器。我创建一个新的容器来修复我的错误。重复10次。最后我终于成功地创建了一个“好的”容器。 提示: 使用docker system prune
来删除所有未使用的容器、网络和镜像,并摆脱“坏的容器”。 提示: 使用--name
命名容器,以便轻松找到您的容器。
错误三: 如果您没有指定容器名称,Docker将自动为您生成一个令人愉快而古怪的容器名称,如“flamboyant_kumbaya”或“funkadelic_oppasum”。Docker还将分配一个CONTAINER ID,如“d239a57b3730”。遗憾的是,我的拼写和复制粘贴技巧不太好。 提示: 通过CONTAINER ID的前3个字符来称呼docker容器。例如,使用docker rm d23
来删除一个容器。
错误四:我没有为我的容器分配一个--name
。我正在尝试通过用户定义的网桥网络和静态IP将此容器连接到其他容器。尽管Docker为每个容器提供了一个CONTAINER ID和NAME,但这两个默认情况下都不是DNS可解析的。提示:为您的容器分配一个--name
,使其可DNS解析。
错误五:我经常假设我的容器已经成功连接到彼此。提示:使用docker inspect $your_network
查看您的容器是否已连接。另外,安装ping(使用apt-get update apt-get install iputils-ping
)并确保您可以从一个容器ping到网络中的其他容器。
错误六:当尝试将某些目录绑定到Docker时,我会遇到这个错误
The paths /var/folders/zz/... and /var/folders/zz/... are not shared from OS X and are not known to Docker. You can configure shared paths from Docker -> Preferences... -> File Sharing.
提示:使用Docker的文件系统共享(osfx),添加您需要的路径,然后重新启动Docker。
我希望这篇教程能帮助您开始使用Docker。如果您有任何问题,请在社区网站上发布,或在@InfluxDB上发推文。