我目前正在寻找Docker,看看它能为我做些什么。我的用例是一个测试/开发服务器,它将运行例如Tomcat& MY-SQL。我不明白的是,最好的方法是什么?
我是为TomCat创建一个图像而为MySQl创建另一个图像吗?或者我把它们放在同一张图片中?
如果是单独的图像,它们应该是单独的容器吗?
答案 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的独立容器。
如果您选择单独的容器,研究/学习的关键点:
我希望这会有所帮助。祝你有个美好的一天。