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 系统编码
注意这里存在问题,容器重启之后,文件还是被更改后的状态,但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