Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

对于 docker 的再体会 #35

Open
riskers opened this issue Mar 27, 2018 · 2 comments
Open

对于 docker 的再体会 #35

riskers opened this issue Mar 27, 2018 · 2 comments
Labels

Comments

@riskers
Copy link
Owner

riskers commented Mar 27, 2018

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

关于 docker 的想法

  • Dockerfile 的作用: Dockerfile 就是将配置环境固化下来,很像 yarn,不仅安装了软件,还锁定了版本
  • docker-compose 的作用:
    • 可以方便地启动连接多个 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 端口:

这是可以连接上的:

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


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


@riskers riskers added the DevOps label Mar 27, 2018
@youngwind
Copy link

youngwind commented Mar 28, 2018

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

@riskers
Copy link
Owner Author

riskers commented Mar 28, 2018

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants