一. 按照我博客中搭建sftp的方法做一个docker镜像

这种方法可用,但不是最好的,待改进。可参照另一篇博客:设置多用户不同权限的sftp服务器搭建

1. dockerfile文件如下,当前目录假定为sftp_docker

FROM ubuntu:14.04
ADD ./source.list /etc/apt/sources.list #这个是阿里云的源文件,放置在当前目录下

#设置ssh,使容器可SSH连接,经测试下面的2步都是必须的,否则会出错,虽然不太清楚为什么...
RUN apt-get update
RUN apt-get -y install openssh-server
RUN mkdir /var/run/sshd
RUN /bin/sed -i 's/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g' /etc/pam.d/sshd

#下面的命令就是参照上面的文字说明一步步写了
RUN groupadd sftp
RUN useradd -g sftp -s /bin/false mysftp
RUN echo "mysftp:123" | chpasswd \n
RUN mkdir -p /data/sftp/mysftp
RUN usermod -d /data/sftp/mysftp mysftp ADD ./sshd_config /etc/ssh/sshd_config #配置文件见下段代码 RUN chown root:sftp /data/sftp/mysftp
RUN chmod 755 /data/sftp/mysftp RUN mkdir /data/sftp/mysftp/upload
RUN chown mysftp:sftp /data/sftp/mysftp/upload
RUN chmod 755 /data/sftp/mysftp/upload EXPOSE 22 #这个CMD命令挺重要的,耗了点时间测试,没事再看看
CMD /usr/sbin/sshd -D

2. 生成镜像文件,镜像名设置为sftp_test1

docker build -t sftp_test1

3. 其中上面代码中sshd_config配置文件如下

Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 1024
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
UsePAM yes
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/mysftp
ForceCommand internal-sftp
AllowTcpForwarding no

阿里云的ubuntu14的源文件如下

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

4. docker-compose 文件如下

sftp:
image: sftp_test1
volumes:
- /data/sftp/mysftp/upload/:/data/sftp/mysftp/upload/
ports:
- "4004:22"

这里需要把本机的/data/sftp/mysftp/upload的权限改为777,这样才能进行在sftp容器中进行文件上传

5. 在docker-compose文件夹中执行docker-compose up -d启动sftp容器,然后sftp -P 4004 mysftp@127.0.0.1   密码为123连上,进入upload文件夹中即可进行文件上传了

二.  网上有一个别人做的sftp镜像,但是按照他的方法上传有点问题

链接为http://www.mamicode.com/info-detail-2084477.html

写成自己的docker-compose文件为

sftp:
  image: atmoz/sftp #冒号后面要后空格

volumes:
    - /home/foo/test/:/home/foo/ #冒号前面不能有空格

# - /home/foo1/test1/:/home/foo1

ports:
    - "2222:22"
  command: foo:pass:1002 (foo1:pass:1003 #可以有多个用户)

 

解决方法如下

/home/foo/test文件夹授权755,在test目录下再新建一个文件夹,比如upload, 把需要上传的文件放置在upload中,并且修改upload权限为777

镜像作者的设定应该是把映射目录作为根目录(监狱),根目录是不能有写权限的,需要在下面再建一个子目录

docker部署sftp的更多相关文章

  1. docker 部署 flask(一)配置环境及测试

    简介: flask也是要部署的.不能老在我们的pycharm里面跑测试服务器. 各种配置linux,我看就算了吧.我们用docker部署. 也就两三行命令. 一:选择基础镜像 GitHub repo: ...

  2. ASP.NET Core开发-Docker部署运行

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  3. Docker部署Hadoop集群

    Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...

  4. 程序开发使用docker部署

    我们公司自己研发了一套 grand-line 系统,使用 docker 来部署项目. 我是第一批小白鼠,一开始网络差,build 一次要半个小时,连接进入 web shell 也很慢,部署一个微信项目 ...

  5. 我使用celery以及docker部署遇到的问题

    首先我本机测试时没有问题的,但是在线上docker中,任务一直显示 "Sending due task".超时的任务是 django orm update 操作,本地不会出现这样的 ...

  6. Docker部署SDN环境

    2014-12-03 by muzi Docker image = Java class Docker container = Java object 前言 5月份的时候,当我还是一个大学生的时候,有 ...

  7. 在生产环境使用Docker部署应用

    导读 Docker现在越来越流行,但是真正在生产环境部署Docker还是个比较新的概念,还没有一个标准的流程.作者是ROR的程序员,作者结合平时的部署经验,联系Docker的特点,向大家分享了其在生产 ...

  8. Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈

    版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/98 来源:腾云阁 https://www.qclou ...

  9. NET Core Docker部署

    NET Core Docker部署 前言 在前面文章中,介绍了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的发布和部署,本篇文章主要是如何在Docker容器中运行 ...

随机推荐

  1. 违反“Don’t Modify Objects You Don’t Own”原则对SharePoint页面带来的影响

    最近看了一本相当不错的JavaScript书,<Maintainable JavaScript>(中文版叫做<编写可维护的JavaScript>),"Don't Mo ...

  2. laravel phpstorm IDE 代码提示

    第一步:在项目的composer.json中添加如下一行 "require": { "laravel/framework": "5.0.*" ...

  3. 8-全排列next_permutation

    C++中全排列函数next_permutation 用法 转载 2017年03月29日 14:38:25 1560 全排列参考了两位的博客 感谢! http://blog.sina.com.cn/s/ ...

  4. ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介

    ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...

  5. WIFI配置专项测试

    1. 测试项目 A. 路由器加密方式测试: B. 路由器信道选择测试: C. DHCP过期时间测试 D. 路由器WIFI密码复杂度测试: 2. 测试结果 2.1. 加密方式测试 路由器密码为简单,其他 ...

  6. java synchronized详解[转]

    Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问同一个对象object中的这个synchronized(this ...

  7. [C++] the pointer array & the array's pointer

    int *p[4]------p是一个指针数组,每一个指向一个int型的int (*q)[4]---------q是一个指针,指向int[4]的数组 --> type: int(*)[4] vo ...

  8. 洛谷 P2850 [USACO06DEC]虫洞Wormholes 判负环

    虫洞(wormhole) FJ 在农场上闲逛时,发现他的农场里有很多虫洞.虫洞是一条特殊的有向路径,当 FJ 从它的一头走到另一头后,他将被传送到过去的某个时刻.FJ 的每个农场包括 N(1<= ...

  9. python json.dumps输出中文问题

    json.dumps 输出的中文是"\u6211\u662f"格式的,输出中文需要指定ensure_ascii=False. json.dumps(actual,ensure_as ...

  10. Discuz!X2截屏控件手动安装教程-Xproer.ScreenCapture

    版权所有 2009-2015 荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com 官方博客:http://www.cnblogs.com/xproer 产品首页:h ...