【发布时间】:2019-01-23 09:51:04
【问题描述】:
我需要从 my_go_app 容器连接 FTP 服务器。 当我从 docker compose 中执行此操作时,我可以这样做:
apk add lftp
lftp -d ftp://julien:test@ftpd-server
而且连接良好
但是当我尝试通过docker run 运行我的容器时,我无法再连接到 FTP 服务器
这里是我使用的命令:
docker run --name my_go_app --rm -v volume:/go my_go_app:exp --network=my_go_app_network --env-file ./test.env
这是工作的 docker-compose.yml
version: '3'
services:
my_go_app:
image: my_go_app:exp
volumes:
- ./volume:/go
networks:
my_go_app_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: "0.0.0.0"
FTP_USER_NAME: "julien"
FTP_USER_PASS: "test"
FTP_USER_HOME: "/home/www/julien"
restart: on-failure
networks:
my_go_app_network:
networks:
my_go_app_network:
external: true
编辑:
我将网络添加为外部网络并手动创建它:
docker network create my_go_app_network
现在看来 my_go_app 是默认网络的一部分:
my_go_app git:(tests) ✗ docker inspect my_go_app -f "{{json .NetworkSettings.Networks }}"
{"bridge":{"IPAMConfig":null,"Links":null,"Aliases":null,"NetworkID":"62b2dff15ff00d5cd56c966cc562b8013d06f18750e3986db530fbb4dc4cfba7","EndpointID":"6d0a81a83cdf639ff13635f0a38eeb962075cd729181b7c60fadd43446e13607","Gateway":"172.17.0.1","IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02","DriverOpts":null}}
➜ my_go_app git:(tests) ✗ docker network ls
NETWORK ID NAME DRIVER SCOPE
62b2dff15ff0 bridge bridge local
f33ab34dd91d host host local
ee2d604d6604 none null local
61a661c82262 my_go_app_network bridge local
我错过了什么?
【问题讨论】:
-
很抱歉,如果这是显而易见的,但是您是否仔细检查过(使用
docker ps)两个容器都按预期启动并运行?此外,值得检查每个容器的日志中的内容 - 那里通常有有用的线索。 -
是的,两个容器都已启动,日志中没有错误
标签: docker docker-compose