【发布时间】:2019-01-22 13:52:24
【问题描述】:
我有一个 Golang 应用程序,它应该连接到 FTP 服务器。
现在,Golang app 和 FTP Server 都是 dockerized,但我不知道如何从 Golang app 连接到 FTP 服务器
这是我的 docker-compose.yml
version: '2'
services:
myappgo:
image: myappgo:exp
volumes:
- ./volume:/go
networks:
myappgo_network:
env_file:
- test.env
ftpd-server:
container_name: ftpd-server
image: stilliard/pure-ftpd:hardened
ports:
- "21:21"
- "30000-30009:30000-30000"
environment:
PUBLICHOST: "localhost"
FTP_USER_NAME: "test"
FTP_USER_PASS: "test"
FTP_USER_HOME: "/home/test"
restart: on-failure
networks:
myappgo_network:
networks:
myappgo_network:
当我运行 docker compose 时,所有服务都已启动。
我可以通过以下方式获取 ftp 容器的 IP:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ftpd-server
然后,我在我的 golang 容器中为 alpine 安装了一个 ftp 客户端,lftp:
docker exec -it my_app_go sh
apk add lftp
lftp -d ftp://test:test@172.19.0.2 # -d for debug
lftp test@172.19.0.2:~> ls
---- Connecting to 172.19.0.2 (172.19.0.2) port 21
`ls' at 0 [Connecting...]
我错过了什么?
【问题讨论】:
-
端口线好吗? ```- "30000-30009:30000-30000"```` 最后30000应该是30009吧?
标签: docker ftp docker-compose docker-networking