我想知道是否有可能以某种方式FTP进入已存在的Docker容器?例如,我正在使用dockerfile/ghost与jwilder/nginx-proxy结合使用,一旦部署/构建容器,我希望用户能够FTP进入运行Ghost的容器,以便上传其他文件,如主题、样式表等。完成此操作的最佳方法是什么?先行致谢!
您有几个选择:
个人认为最后一个选择最好,也是最需要工作量的,但长期来看优势将是值得的。我做出了上传内容应该在容器终止时存活的假设,因此建议使用映射的主机目录,如果情况不是这样,则可以在FTP容器和Ghost容器之间使用链接卷。
可能最“dockery”的做法是为您的ftp服务器运行一个容器(例如https://github.com/gizur/docker-ftpserver),并为Ghost运行一个单独的容器,然后挂载一个共同的卷。
最好的同步方式是使用版本2的docker-compose.yml https://docs.docker.com/compose/compose-file/#volume-configuration-reference
docker-compose.yml文件可能如下所示:
version: '2'
services:
ghost:
build:
context: ./ghost
ports:
- "80:80"
- "443:443"
volumes:
- "ftpsharevolume:/mnt/ftp"
depends_on:
- ftp
ftp:
image: someftpdockerimage
volumes:
- "ftpsharevolume:/srv/ftp"
ports:
- "21:21"
- "20:20"
volumes:
ftpsharevolume:
driver: local