一、安装docker环境

  参见 http://www.cnblogs.com/rslai/p/8403350.html

二、从Docker Hub查找sftp镜像

docker search sftp

三、安装sftp - 通过端口转发访问

1、sftp上传文件目录在容器中

docker run --name mysftp -p 2294:22 -d atmoz/sftp foo:pass:::upload
  • --name mysftp  容器名称
  • foo:pass:::upload  其中foo为用户名,pass为密码,upload为上传的文件会保存到容器里面的/home/foo/upload目录里面
  • -p 22:22  将宿主机的22端口映射到容器的22端口,这样方位宿主机的22端口则会转发到容器的22端口上
  • -d atmoz/sftp  使用dockup hub中的atmoz/sftp镜像创建容器

  通过以上命令构建的sftp容器,用户上传的文件会存放在容器里面中,如果容器删除,则上传文件将会丢失。

  查看sftp是否运行

docker ps -a # 查看所有已安装容器
docker ps # 查看运行这的容器

  此时就可以使用sftp客户端连接此sftp服务了

docker exec -it e22eb5da1095  /bin/bash # 进入docker容器,这里使用容器名称或CONTAINER ID都可

  这个nginx.conf则是上传的文件

  

2、sftp上传文件目录在宿主机目录

  下面的方法可以把本地的文件系统,挂载到容器内,这样上传的文件就会在主机上看到。就算容器被删除了,上传的文件也不会丢失。

docker run --name mysftp20 -v /host/upload:/home/foo/upload --privileged=true -p 2222:22 -d atmoz/sftp foo:pass:1001
  • -v /host/upload:/home/foo/upload  其中冒号前边的是宿主机目录,后边的挂载到容器中的目录,如果本地目录/host/uplaod不存在会自动创建
  • --privileged=true  由于linux的selinux安全规则所以需要给容器加特权
  • 名字也换了一个因为name不能重复,端口也是重复了容器会启动不了

3、创建多用户sftp服务

  如果你想给sftp配置多个用户可以有两个方式,1、在容器中创建用户并指派权限,2、在宿主机上编写用户文件然后挂载到容器中

docker run --name mysftp30 -v /host/users.conf:/etc/sftp/users.conf:ro -v /home/sftp:/home  --privileged=true -p 3333:22 -d atmoz/sftp
  • -v /host/users.conf:/etc/sftp/users.conf:ro  将本地的/host/users.conf映射到容器的/etc/sftp/users.conf,并且在容器内为只读
  • -v /home/sftp:/home  将本地/home/sftp目录映射到容器/home下存放上传的文件

  创建本地 /host/users.conf文件

vi /host/users.conf

  内容如下

foo:123:1001:100
bar:abc:1002:100
baz:xyz:1003:100

  其中 user:pass:uid:gid  用户名:密码:用户id:组id

  这里创建的用户目录默认组和用户都是root没有权限,需要手动修改一下。

4、查看本地的哪个目录映射到容器使用  

#查看目录映射到容器
#docker inspect CONTAINER_ID
#docker inspect NAMES
docker inspect mysftp30

四、安装sftp - 直接ip访问

  

使用Docker快速搭建sftp服务的更多相关文章

  1. docker快速搭建几个常用的第三方服务

    本次和大家分享的内容是使用docker快速搭建工作中常用的第三方的服务,对于有一些互联网背景的公司来说,以下几个服务都是很需要的:redis,rabbit,elasticsearch: 本篇涉及内容深 ...

  2. spring boot / cloud (十八) 使用docker快速搭建本地环境

    spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...

  3. Azure 中快速搭建 FTPS 服务

    FTP,FTPS 与 SFTP 的区别 FTP (File Transfer Protocol)是一种常用的文件传输协议,在日常工作中被广泛应用.不过,FTP 协议使用明文传输.如果文件传输发生在公网 ...

  4. 五分钟用Docker快速搭建Go开发环境

    挺早以前在我写过一篇用 `Docker`搭建LNMP开发环境的文章:[用Docker搭建Laravel开发环境](http://mp.weixin.qq.com/s?__biz=MzUzNTY5MzU ...

  5. 使用docker快速搭建hive环境

    记录一下使用docker快速搭建部署hive环境 目录 写在前面 步骤 安装docker 安装docker 安装docker-compose 配置docker国内镜像源(可选) 安装git & ...

  6. 使用Docker快速搭建ELK环境

    今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...

  7. 一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  8. Docker快速搭建Zookeeper和kafka集群

    使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...

  9. 使用Docker快速搭建Zookeeper和kafka集群

    使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...

随机推荐

  1. 洛谷 P1972 [SDOI2009]HH的项链 解题报告

    P1972 [SDOI2009]HH的项链 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断 ...

  2. Corosync+Pacemaker+crmsh构建Web高可用集群

    一.概述: 1.1 AIS和OpenAIS简介 AIS应用接口规范,是用来定义应用程序接口(API)的开放性规范的集合,这些应用程序作为中间件为应用服务提供一种开放.高移植性的程序接口.是在实现高可用 ...

  3. 编译安装keepalived,实现双主mysql高可用

    安装keepalived 1.官网下载源码包,解压 # wget http://www.keepalived.org/software/keepalived-1.1.20.tar.gz # tar x ...

  4. Lnmp上安装Yaf学习(一)

    今天学习Lnmp上面如何安装Yaf流程 一.安装Lnmp 集成环境 访问路径:https://lnmp.org/install.html 这里我安装稳定版lnmp 1)   wget -c http: ...

  5. python学习(25) BeautifulSoup介绍和实战

    BeautifulSoup是python的html解析库,处理html非常方便 BeautifulSoup 安装 pip install beautifulsoup4 BeautifulSoup 配合 ...

  6. [大数据]-hadoop2.8和spark2.1完全分布式搭建

    一.前期准备工作: 1.安装包的准备: VMware(10.0版本以上) : 官方网站:https://www.vmware.com/cn.html 官方下载地址:http://www.vmware. ...

  7. java基础-数组的折半查找原理

    java基础-数组的折半查找原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让你写一个数组的查找功能,需求如下:在一个数组中,找一个元素,是否存在于数组中, 如果存在就返回 ...

  8. [Java] I/O底层原理之一:字符流、字节流及其源码分析

    关于 I/O 的类可以分为四种: 关于字节的操作:InputStream 和 OutPutStream: 关于字符的操作:Writer 和 Reader: 关于磁盘的操作:File: 关于网络的操作: ...

  9. CALayer属性:position和anchorPoint

    一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position; 用来设 ...

  10. RTSP服务器之————rtsp-server(轻量级RTSP / RTP流媒体服务器)

    github:https://github.com/revmischa/rtsp-server 轻量级RTSP / RTP流媒体服务器