Open riskers opened 6 years ago
将近一年前我学习了一段时间的 docker,并且记录了一个流水账一般的笔记。之后一直没有正经在项目中使用过,最近一个项目中需要使用,又再次学习了一遍,再次记录一点。
固化 这个词我都加粗了,因为我没想到更适合的词。
我看到不少文章中在 Dockerfile 里都使用 COPY 命令把源代码放置在 docker 镜像里,但是就像上面说的,docker 容器只应该提供一套环境,不应该和代码强关联。所以,代码和环境应该使用 volume 命令来连接起来。
COPY
volume
推荐使用 kitematic.com,这是官方的一个 GUI 软件,使用方便,对于我这种虽然了解概念,但是命令行不熟的人来说很有用。
比如你新启动一个项目,需要使用 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 端口:
这是可以连接上的:
并且,我们可以看到数据已经保存到本地而不是容器里:
向我捐助 | 关于我 | 工作机会
能在生产环境下使用,还是很不错的。之前我了解过 docker,但是没有用起来。
@youngwind 的确,在公司里,这些都是现成的。
将近一年前我学习了一段时间的 docker,并且记录了一个流水账一般的笔记。之后一直没有正经在项目中使用过,最近一个项目中需要使用,又再次学习了一遍,再次记录一点。
关于 docker 的想法
代码不放在 docker 里
我看到不少文章中在 Dockerfile 里都使用
COPY
命令把源代码放置在 docker 镜像里,但是就像上面说的,docker 容器只应该提供一套环境,不应该和代码强关联。所以,代码和环境应该使用volume
命令来连接起来。对命令行不熟
推荐使用 kitematic.com,这是官方的一个 GUI 软件,使用方便,对于我这种虽然了解概念,但是命令行不熟的人来说很有用。
docker 对本地开发的帮助
比如你新启动一个项目,需要使用 mysql。你可以自己在本机上安装 mysql,还要想着本机的 mysql 版本和服务器上 mysql 版本是不是一致的问题。或者,你可以使用 docker,一条命令就搞定:
然后我们在 kitematic 中可以看到:
端口映射和 volume 一目了然,然后我们试试这个 mysql 有没有映射到本机的 33306 端口:
这是可以连接上的:
并且,我们可以看到数据已经保存到本地而不是容器里: