Criando um servidor de FTP com o Docker

eKode
eKode
Published in
3 min readMay 31, 2018
Como criar um servidor de FTP no Docker

Muitas vezes nós desenvolvedores recebemos a tarefa de implementar aplicações que precisam interagir com um servidor FTP, fazendo download e upload de arquivos.

Porém, nem sempre temos um servidor de testes configurado à nossa disposição e precisamos criar um nós mesmos. O problema aqui é que nem todos têm experiência com esse tipo de configuração e acabam investindo muito tempo na tarefa de montar um servidor FTP local para testes.

Criando um servidor FTP com o Docker

Se um dia você se vir nessa situação, não entre em pânico. Nós trazemos nesse post uma dica rápida, porém bastante útil: como criar um servidor de FTP no Docker.

O que faremos é basicamente criar um container a partir de uma imagem que configura um servidor FTP. Para isso, precisaremos de um único comando. E ao final, se não precisarmos mais do FTP, basta remover o container, sem se preocupar com desinstalar qualquer outro software desnecessário do seu computador.

Então, mãos à obra. Tendo o Docker instalado, abra seu terminal/prompt de comandos e execute o seguinte comando:

docker run -d -v D:/ftp:/home/vsftpd -p 20:20 -p 21:21 -p 47400-47470:47400-47470 -e FTP_USER=ekode -e FTP_PASS=ekode123 -e PASV_ADDRESS=10.0.75.1 --name ftp --restart=always bogem/ftp

Aqui estamos passando os seguintes argumentos para o comando docker run:

  • -d: executará o container em modo detached, ou seja, ele ficará rodando em segundo plano e o terminal será liberado.
  • -v: cria um volume, vinculando uma pasta local a uma pasta do container. Nesse caso eu tenho uma pasta local em D:/ftp, mas você deve mudar esse caminho para apontar para o diretório que desejar em seu sistema operacional hospedeiro.
  • -p: vincula algumas portas do container às portas do sistema hospedeiro. O acesso ao servidor e transferência de arquivos ser dará através delas.
  • -e: define algumas variáveis de ambiente que são necessárias à correta execução do container. Nesse caso, passamos o nome de usuário, senha e o IP do servidor. Aqui passamos o IP da interface de rede do Docker, que pode ser obtido executando o comando ipconfig no terminal/propt de comandos.
  • - -name: define o nome do container que será criado.
  • - -restart: o valor always faz com que esse container seja reiniciado sempre junto com o Docker daemon, zerando seu status atual.
  • bogem/ftp: essa é imagem que estamos baixando, a qual está registrada no Docker Hub.

Ao executar esse comando, o Docker fará download da imagem, caso ela ainda não tenha sido baixada em seu computador. Em seguida, criará o container. Para verificar se tudo correu bem, execute docker ps e você deve ver que o novo container estará rodando, semelhante ao que vemos na imagem abaixo:

Container do FTP em execução

Agora já podemos acessar nosso servidor de FTP. Para isso, podemos usar algum cliente de FTP, como o Filezilla. Basta informar o host (IP que usamos ao criar o container), usuário e senha (a porta 21 será usada por padrão).

Após se conectar, poderemos transferir arquivos para o servidor, como vemos abaixo:

Arquivos copiados de uma pasta local (esquerda) para o FTP (direita)

Observação: como criamos um volume para esse container, os arquivos copiados para ele estarão armazenados na pasta que informamos no argumento -v anteriormente.

Está feito! Você agora tem um servidor FTP local e pode usá-lo em suas aplicações. Ao final, basta remover o container usando os comandos abaixo:

docker stop nome-do-container
docker rm nome-do-container

Essa dica rápida nos mostra que o Docker pode simplificar a criação de ambientes e desenvolvimento e testes usando containers.

Confira também a versão deste post em vídeo:

Até a próxima!

--

--

eKode
eKode
Editor for

Sua plataforma de cursos de programação.