用于测试服务器的Docker架构

时间:2016-05-23 08:43:35

标签: docker

我目前正在寻找Docker,看看它能为我做些什么。我的用例是一个测试/开发服务器,它将运行例如Tomcat& MY-SQL。我不明白的是,最好的方法是什么?

我是为TomCat创建一个图像而为MySQl创建另一个图像吗?或者我把它们放在同一张图片中?

如果是单独的图像,它们应该是单独的容器吗?

3 个答案:

答案 0 :(得分:1)

是的,为每个应用程序使用预先存在的图像。你可以得到#34;官方"来自Docker Hub的那些。

如果您有这种能力,只需安装具有您选择的Linux风格的虚拟机即可。选择适合该风格的Docker软件包。

然后浏览Docker Hub以查找您可能觉得有用的图片,按照他们的说明继续操作,然后您就可以了!

深入了解文档 - 也许去拿几本(e)书。

总是,你会从

开始
docker pull <image>
docker run <options> <image>

<image>是你从Hub获得的Docker镜像 - 在你的情况下是mySQL和Tomcat。 <options>是多种多样的,取决于你想做什么,你将要进行实验。

您案例的具体示例:

docker pull mysql
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
docker pull tomcat:8.0
docker run -it --name tomcat --link some-mysql:mysql -p 8888:8080 tomcat:8.0

这将启动mySQL,然后启动Tomcat,同时将这两个容器连接在一起。只是为了告诉你可以做些什么。

请注意,从集线器下载新图片时,您不必 首先运行docker pull。我通常会对图像标签/版本进行更多控制。

答案 1 :(得分:1)

首选方法是使用Docker Hub的官方图片。 MySQL https://hub.docker.com//mysql/ Tomcat https://hub.docker.com/ /tomcat/

然后,如果你想长时间在MySQL中保存数据,你需要另一个“数据容器”来存储MySQL数据。否则,每次重新创建MySQL容器时,都会丢失所有数据库。

您可以像

一样轻松启动MySQL容器
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=[put your password] mysql

和Tomcat容器一样简单

docker run -d -p 8888:8080 --link mysql:mysql tomcat:8.0

然后你可以在tomcat应用程序中将你的mysql服务器简单地称为 mysql (这个主机名会解析为正确的IP)

答案 2 :(得分:1)

建议将数据库和Web服务器隔离到自己的容器中,或模拟您的体系结构在prod中的外观,这可能是Web和db的独立容器。

如果您选择单独的容器,研究/学习的关键点:

  1. 使用其他人建议的预定义图片
  2. 使用Docker中的传统LINK链接容器或将它们放在同一网络下(查找容器网络)
  3. 使用Docker Compose可以更轻松地进行容器协调,因此您不必自己手动启动容器,因为这会使您拥有的容器越来越麻烦。
  4. 我希望这会有所帮助。祝你有个美好的一天。