使用Docker快速搭建sftp服务
一、安装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服务的更多相关文章
- docker快速搭建几个常用的第三方服务
本次和大家分享的内容是使用docker快速搭建工作中常用的第三方的服务,对于有一些互联网背景的公司来说,以下几个服务都是很需要的:redis,rabbit,elasticsearch: 本篇涉及内容深 ...
- spring boot / cloud (十八) 使用docker快速搭建本地环境
spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...
- Azure 中快速搭建 FTPS 服务
FTP,FTPS 与 SFTP 的区别 FTP (File Transfer Protocol)是一种常用的文件传输协议,在日常工作中被广泛应用.不过,FTP 协议使用明文传输.如果文件传输发生在公网 ...
- 五分钟用Docker快速搭建Go开发环境
挺早以前在我写过一篇用 `Docker`搭建LNMP开发环境的文章:[用Docker搭建Laravel开发环境](http://mp.weixin.qq.com/s?__biz=MzUzNTY5MzU ...
- 使用docker快速搭建hive环境
记录一下使用docker快速搭建部署hive环境 目录 写在前面 步骤 安装docker 安装docker 安装docker-compose 配置docker国内镜像源(可选) 安装git & ...
- 使用Docker快速搭建ELK环境
今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...
- 一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- Docker快速搭建Zookeeper和kafka集群
使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...
- 使用Docker快速搭建Zookeeper和kafka集群
使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...
随机推荐
- 洛谷 P2731 骑马修栅栏 Riding the Fences 解题报告
P2731 骑马修栅栏 Riding the Fences 题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与其他农民一样 ...
- 解题:NOI 2016 优秀的拆分
题面 其实题目不算很难,但是我调试的时候被玄学了,for循环里不写空格会RE,写了才能过.神**调了一个多小时是这么个不知道是什么的玩意(真事,可以问i207M=.=),心态爆炸 发现我们只要找AA或 ...
- bzoj 2839 : 集合计数 容斥原理
因为要在n个里面选k个,所以我们先枚举选的是哪$k$个,方案数为$C_{n}^k$ 确定选哪k个之后就需要算出集合交集正为好这$k$个的方案数,考虑用容斥原理. 我们还剩下$n-k$个元素,交集至少为 ...
- c++11 时间类 std::chrono
概念: chrono库:主要包含了三种类型:时间间隔Duration.时钟Clocks和时间点Time point. Duration:表示一段时间间隔,用来记录时间长度,可以表示几秒钟.几分钟或者几 ...
- Fibonacci数列时间复杂度之美妙
Fibonacci数列: fib(0)=1 fib(1)=1 fib(n)=fib(n-1)+fib(n-2) 上课老师出了一道题,求下列函数的时间复杂度: int fib(int d) { ) ; ...
- imuxsock lost 353 messages from pid 20261 due to rate-limiting 解决办法
日志中出现大量一下日志时 May 24 18:42:08 yw_lvs2_backup rsyslogd-2177: imuxsock lost 353 messages from pid 20261 ...
- Java入门:注册模块的实现
1.主活动图 用户选择注册选项,进入注册界面,开始输入注册信息,到最后完成注册.具体的活动图如下: 以上活动图中,矩形框里的操作不是在一个类里面实现的,而是通过Form类和UserService类来实 ...
- kubernetes挂载ceph rbd和cephfs的方法
目录 k8s挂载Ceph RBD PV & PVC方式 创建secret 创建PV 创建PVC 创建deployment挂载PVC StorageClass方式 创建secret 创建Stor ...
- Hadoop生态圈-hbase常用命令
Hadoop生态圈-hbase常用命令 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- SQL语句(二十一)—— 触发器(DML触发器)
触发器 一 .触发器概述(特殊的存储过程) 定义: 在修改指定表值的数据时执行的 存储过程. 不同的是 : 执行存储过程要使用EXEC语句来调用,而触发器的执行不需要使用EXEC语句来调用. 作用: ...