我的印象是以下命令的等效项不能放入 a Dockerfile
or Dockerfile.dev
:
docker run -p 5432:5432 -v /home/app/database/db-files:/var/lib/postgresql/data sockpuppet/database
我-p 5432:5432
用来绑定到本地端口,所以我可以使用 pgAdmin 连接到 Postgres。这不是绝对的要求,但很高兴拥有。也许有更好的方法来做到这一点?
这样我就可以将-v /home/app/database/db-files:/var/lib/postgresql/data
数据保存在本地卷上。
问题在于EXPOSE
,Dockerfile
据我所知,它只是在容器之间打开端口。VOLUME
in a的问题Dockerfile
在于它只是指图像的文件系统。
我很难理解的更大问题是Skaffold 在运行容器时skaffold.yaml
引用了这些Dockerfile
`Dockerfile.dev`:
apiVersion: skaffold/v1beta2
kind: Config
build:
local:
push: false
artifacts:
- image: sockpuppet/client
context: client
docker:
dockerfile: Dockerfile.dev
sync:
'**/*.js': .
'**/*.css': .
'**/*.html': .
- image: sockpuppet/server
context: server
docker:
dockerfile: Dockerfile.dev
sync:
'**/*.js': .
deploy:
kubectl:
manifests:
- k8s/client-deployment.yaml
- k8s/server-deployment.yaml
- k8s/server-cluster-ip-service.yaml
- k8s/client-cluster-ip-service.yaml
那么如果不能在中指定端口和映射卷,我应该如何绑定它们Dockerfile
?docker run -p 5432:5432 -v /home/app/database/db-files:/var/lib/postgresql/data ishraqiyun77/database
每次我想启动数据库时都需要手动运行吗?
如果有帮助,我将回购用作参考:https ://github.com/StephenGrider/DockerCasts/tree/master/complex