关于Docker和Docker Compose等的事项

我是齐藤,在TECH LUCK株式会社担任代表兼工程师的一职。

由于氛围中使用了Docker和Docker Compose,所以我稍微调查了一下细节。
我将在适当的时候添加补充内容。

关于CMD、RUN和ENTRYPOINT的区别。

这篇文章非常详细。

 

有关CMD和ENTRYPOINT的用法差异

这篇文章非常详细。

 

也有一些文章实际执行并试用了命令。

 

关于Docker的EXPOSE功能

下面的文章提供了详细的信息。

 

然而,仅仅使用EXPOSE无法使端口被公开。换句话说,使用者无法从容器中访问它。但可以通过后面介绍的”docker run -p”命令来将公开用的端口和通过EXPOSE指定的端口绑定起来,以实现端口的公开。
因此,EXPOSE对于镜像作者和容器执行者都起到了类似文档的角色。

关于Docker Compose中每个容器之间的通信

每个容器并不是通过docker-compose.yml文件中定义的端口进行通信,而是通过Docker Compose的功能,在docker-compose.yml文件中定义的服务名称自动进行名称解析。

在Rails的情况下,我可以通过将docker-compose.yml中指定的服务名称设置为host,就可以进行通信。这是为什么可以这样做的原因。

 

关于CPU的架构

Docker根据主机的CPU架构,从Docker Hub拉取镜像。
在M1 Mac上,如果需要为ECS进行构建,则需要注意。