使用Docker快速搭建sftp服务

环境:

docker环境

如果是centos7系统,没有安装docker,直接使用以下命令安装

yum -y install docker
systemctl start docker.service

镜像拉取:

PS:不拉取也可以,在docker run的时候检测到没有镜像会自动拉取

docker pull docker.io/atmoz/sftp

最简单的使用docker搭建sftp实例:

docker run -p 22:22 -d atmoz/sftp foo:pass:::upload

执行以上命令后,会在容器里面创建foo用户,密码为pass,此时登录sftp服务器后,可以看到upload文件夹,上传的文件会保存到容器里面的/home/foo/upload目录里面。

通过以上命令构建的sftp容器,用户上传的文件是存放在容器里面的,如果容器被误删除,那么文件也将会丢失,通过下面的方式,可以把本地的文件系统,共享到容器内,这样上传的文件就会在主机上就能看到的到了。就算容器被删除,上传的文件也不会丢失。

共享本地目录到容器

docker run     -v /host/upload:/home/foo/upload     -p 2222:22 -d atmoz/sftp     foo:pass:1001
    -------------------------我是分割线------------------------------------
    OpenSSH服务器默认在端口22上运行,在本例中,我们将容器的端口22转发到主机的端口2222
    要使用OpenSSH客户端登录,请运行:sftp -P 2222 foo @ <host-ip>

PS.1 如果本地不存在/host/uplaod会自动创建

PS.2 登录会看到upload文件夹,如果没有写入权限,将宿主机上的/host/upload文件夹授权777即可

PS.3 如果还是无法写入文件,请检查selinux是否关闭

  以上都是只在容器里面创建了foo这一个用户,如果有多个用户需要登录sftp,怎么办呢?请看下面的示例:

docker run     -v /host/users.conf:/etc/sftp/users.conf:ro     -v mySftpVolume:/home     -p 3333:22 -d atmoz/sftp

PS.1 第一个-v将本地的/host/users.conf映射到容器的/etc/sftp/users.conf,并且在容器内为只读

/host/users.conf文件内容如下:

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

user:pass:uid:gid

PS.2 第二个 -v将mySftpVolume映射到容器内的/home

PS.3 登录后,写入文件会无法写入,需要把本地映射到容器的目录里面的用户名文件夹授权为777

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

docker inspect CONTAINER_ID
时间: 2024-10-10 21:09:21

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

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

本次和大家分享的内容是使用docker快速搭建工作中常用的第三方的服务,对于有一些互联网背景的公司来说,以下几个服务都是很需要的:redis,rabbit,elasticsearch: 本篇涉及内容深度只针对于简单的测试环境和程序员自身学习,要继续深入各位可以花时间自行研究,希望本篇内容给大家带来好的帮助. 本篇涉及docker常用几个命令: docker pull 镜像名:版本:拉去镜像 docker rmi 镜像名或id:删除镜像 docker images:获取本地已有镜像 docker

本地使用 docker 快速搭建一个 PHP7.4 学习环境 | Laravel China 社区

原文:本地使用 docker 快速搭建一个 PHP7.4 学习环境 | Laravel China 社区 安装 docker# 安装方法:https://hub.docker.com/?overlay=onboarding 文档手册:https://docs.docker.com/docker-hub/ 安装完成后使用命令查看版本 $ docker --version 下载镜像# 1.拉取需要的镜像# 去 hub.docker.com 拉取需要的镜像 2.查看拉取方法# 3.转到终端界面# 拉取

结合Docker快速搭建ELK日志收集分析平台

结合Docker快速搭建ELK日志收集分析平台 2017-03-27 09:39 阅读 172 评论 0 作者:马哥Linux运维-Eason ELK Stack ELK (Elasticsearch + Logstash + Kibana),是一个开源的日志收集平台,用于收集各种客户端日志文件在同一个平台上面做数据分析. Introduction Elasticsearch, 基于json分析搜索引擎Logstash, 动态数据收集管道Kibana, 可视化视图将elasticsearh所收集

centos 使用sshfs快速搭建文件共享服务

centos 使用sshfs快速搭建文件共享服务 看了很多教程都写的不够完整所以自己根据实际操作找遇到的坑共享一下给大家 共享文件服务器必须打开ssh服务器 实例:IP192.168.7.50 yum -y install epel-release # 安装epel 源码 yum -y install fuse-sshfs # 安装sshfs  sshfs -o allow_other,nonempty [email protected]:/opt/ /opt/http 指定密钥文件 sshfs

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

原文:一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏 欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.exception.site 小哈今天给大家分享的主题是,如何通过 Docker 快速搭建各种测试环境,本文列举的,也是小哈在工作中经常用到的,其中包括 Mysql

Docker-教你如何通过 Docker 快速搭建各种测试环境

今天给大家分享的主题是,如何通过 Docker 快速搭建各种测试环境,本文列举的,也是作者在工作中经常用到的,其中包括 MySQL.Redis.Elasticsearch.MongoDB 安装步骤,通过几行命令秒秒钟就能轻松搞定.友情提示:搭建之前,你需要先安装 Docker 哟,本文基于您已经安装好 Docker 的基础上!废话少说,正文开始! 一.镜像加速 Docker 默认是从官方镜像地址 Docker Hub 下下载镜像,由于服务器在国外的缘故,导致经常下载速度非常慢.为了提升镜像的下载

基于Docker快速搭建多节点Hadoop集群--已验证

Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop on Docker项目所存在的问题之后,开发了接近最小化的Hadoop镜像,并且支持快速搭建任意节点数的Hadoop集群. 一. 项目简介 GitHub: kiwanlau/hadoop-cluster-docker 直接用机器搭建Hadoop集群是一个相当痛苦的过程,尤其对初学者来说.他们还没开

搭建sftp服务+nginx代理

在公司,经常会用到sftp服务,比如两个公司对接生产项目,其中一方,要在sftp上上传pdf文件,另一方公司要在sftp服务器上用nginx代理直接下载pdf文件.下面就说说我在实际中应用到的sftp服务+nginx代理的配置方法: 一.环境: 192.168.16.12     centos6.5 在Centos 6.5环境使用系统自带的internal-sftp搭建SFTP服务器. 二.查看版本 查看openssh的版本,使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p

Linux 搭建Sftp服务并进行权限设置

一.最近接到一个项目组的需求搭建文件服务器,需求如下 1.用户:amovs.upload.download 2.组:amovs.dataload.download 3.具体需求是upload和download的家目录都为同一个目录dataload 4.upload能上传也就是能读能写.download用户只能下载 5.amovs因需要进行批量自动化删除日志等操作,所以对于dataload目录权限需要读.写权限 6.并且upload和download只能使用sftp软件上传和下载文件使用,不能作为