Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker-构建一个环境_Docker_Docker Compose_Dockerfile - Fatal编程技术网

Docker-构建一个环境

Docker-构建一个环境,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,几个小时的谷歌搜索之后,我就是找不到我要找的东西 我想知道我是否可以使用Docker执行以下操作:拥有单独的Docker文件,这些文件可以在我的团队中的一组开发人员之间部署和共享 例如: 容器1-安装内腔,也可以通过命令行安装react。我们的大多数项目都是lumen,一些项目也需要安装react/typescript。(也能够使用npm安装) 容器2-MYSQL/MariaDB,带或不带数据。我知道您可以将数据放在单独的容器中。如果可以将数据分开,我不介意在容器1中使用MySQL等 我们的

几个小时的谷歌搜索之后,我就是找不到我要找的东西

我想知道我是否可以使用Docker执行以下操作:拥有单独的Docker文件,这些文件可以在我的团队中的一组开发人员之间部署和共享

例如:

  • 容器1-安装内腔,也可以通过命令行安装react。我们的大多数项目都是lumen,一些项目也需要安装react/typescript。(也能够使用npm安装)

  • 容器2-MYSQL/MariaDB,带或不带数据。我知道您可以将数据放在单独的容器中。如果可以将数据分开,我不介意在容器1中使用MySQL等


我们的想法是,容器1可以被替换掉,因为它们将代表不同的项目,但DB数据可以是一个单独的容器,因此我们都可以拥有自己的容器2副本,如果出于任何原因,它会被损坏。我们可以重复使用它

在Docker中,您有不同的对象: -Dockerfile,它是用于构建图像的文件 -图像,它是使用图像定义(如Dockerfile)生成的结果 -容器,它基本上是一个运行图像 -注册表,一个可以存储图像并与其他人共享的地方

所以,对于您的用例,您有不同的解决方案,但如果我了解您的需求,您希望向您的团队共享包含lumen和一些npm包的图像吗?如果是这样,您可以构建它并将其推送到注册表中

您的团队可以按原样使用它,也可以基于此创建自定义图像

对于mysql/mariadb容器,可以使用基本映像并在
/docker entrypoint initdb.d
中添加初始化脚本(sql或sh文件)


如果你破坏了数据库,你只能移除容器和它的卷,然后重新启动它。

基于此和我所做的研究。。我需要用我的基本lumen安装和软件包(如php、nginx、react/typescript)创建一个容器,并将其另存为图像。然后为MYSQL构建一个映像作为基础,然后添加初始化脚本。如果我同时运行两个容器,它会自动允许我连接到DB容器吗?对于MySQL,您可以基于MySQL基本映像构建自定义映像:对于基本lumen安装,您需要创建Dockerfile是并构建它(
docker build/
并共享它(
docker push/
)。