riskers / blog

:pencil2: 博客写在 Issues 里
http://riskers.github.io/
MIT License
1.13k stars 96 forks source link

对于 docker 的再体会 #35

Open riskers opened 6 years ago

riskers commented 6 years ago

将近一年前我学习了一段时间的 docker,并且记录了一个流水账一般的笔记。之后一直没有正经在项目中使用过,最近一个项目中需要使用,又再次学习了一遍,再次记录一点。

关于 docker 的想法

固化 这个词我都加粗了,因为我没想到更适合的词。

代码不放在 docker 里

我看到不少文章中在 Dockerfile 里都使用 COPY 命令把源代码放置在 docker 镜像里,但是就像上面说的,docker 容器只应该提供一套环境,不应该和代码强关联。所以,代码和环境应该使用 volume 命令来连接起来。

对命令行不熟

推荐使用 kitematic.com,这是官方的一个 GUI 软件,使用方便,对于我这种虽然了解概念,但是命令行不熟的人来说很有用。

docker 对本地开发的帮助

比如你新启动一个项目,需要使用 mysql。你可以自己在本机上安装 mysql,还要想着本机的 mysql 版本和服务器上 mysql 版本是不是一致的问题。或者,你可以使用 docker,一条命令就搞定:

docker run -it -p 33306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -v ~/mysql:/var/lib/mysql mysql

然后我们在 kitematic 中可以看到:

端口映射和 volume 一目了然,然后我们试试这个 mysql 有没有映射到本机的 33306 端口:

这是可以连接上的:

并且,我们可以看到数据已经保存到本地而不是容器里:


向我捐助 | 关于我 | 工作机会


youngwind commented 6 years ago

能在生产环境下使用,还是很不错的。之前我了解过 docker,但是没有用起来。

riskers commented 6 years ago

@youngwind 的确,在公司里,这些都是现成的。