Linux两种方式搭建FTP的Docker镜像,以及容器内部编码解决

一、Linux搭建Docker版FTP

下面是一种直接快速拉取搭建的ftp命令,但编码方式不符合我的需求
命令详解https://blog.csdn.net/weixin_41753664/article/details/123374929

docker run -d -p 2121:21 -p 2020:20 -p 21100-21110:21100-21110 -v /home/vsftpd/ftp/:/home/vsftpd/zhangsan/ -e FTP_USER=zhangsan -e FTP_PASS=123 -e PASV_ADDRESS=192.168.120.130 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd

二、修改 Docker 容器内部 locale 系统编码

容器内部修改编码方式:https://www.cnblogs.com/z-belief/p/6148463.html

注意这里存在问题,容器重启之后,文件还是被更改后的状态,但locale显示仍未设置的状态,很疑惑,不是永久修改该容器的配置文件了吗,也许是配置文件未生效。

#相关命令
docker run -it 103380db15a9 /bin/bash

locale
 echo $LANG
 echo $LC_ALL
 
vi /etc/profile
export LC_ALL=en_US.utf8
export LANG=en_US.utf8

在这里插入图片描述

最终待实现效果,这个方式容器内部编码并未永久改变

在这里插入图片描述

三、编写Dockerfile方式加载带UTF-8编码环境的镜像

Dockerfile命令详解: https://blog.csdn.net/m0_46090675/article/details/121846718

Dockerfile文件内容:

FROM fauria/vsftpd
VOLUME /home/vsftpd/zhangsan/

ENV FTP_USER zhangsan
ENV FTP_PASS 123
ENV PASV_ADDRESS 192.168.120.130
ENV PASV_MIN_PORT 21100
ENV PASV_MAX_PORT 21110
ENV LANG en_US.utf8

EXPOSE 2121
EXPOSE 2020
EXPOSE $PASV_MIN_PORT-$PASV_MAX_PORT

3.1Dockerfile构建镜像

docker build -t vsftpd:myftp .

3.2运行自己构建的镜像,并挂载镜像暴露的端口号,卷轴

docker run -d -p 2121:21 -p 2020:20 -p 21100-21110:21100-21110 -v /home/vsftpd/ftp/:/home/vsftpd/zhangsan/ --name vsftpd --restart=always vsftpd:myftp

3.3进入Dockerfile容器

docker exec -it b6fdb9cde324 /bin/bash

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_45057216/article/details/128563825