docker运行容器远程挂载卷的方法

docker容器中卷的使用

创建卷,卷本身有多种方式例如下面创建的几种:

下面是官方的基本步骤:

创建一个卷:
$ docker volume create my-vol
查看:

$ docker volume ls
local        my-vol
查看卷的详情:
$ docker volume inspect my-vol
[
  {
    "Driver": "local",
    "Labels": {},
    "Mountpoint": "/var/lib/docker/volumes/my-vol/_data",
    "Name": "my-vol",
    "Options": {},
    "Scope": "local"
  }
]
移除卷:
$ docker volume rm my-vol

接下来在此基础上需要用到卷驱动,具体步骤如下:

安装vieux/sshfs作为卷驱动

# 卷插件安装
$ docker plugin install --grant-all-permissions vieux/sshfs

创建一个卷

其中sshcmd和password表示远程主机挂载点、和ssh登录密码

docker volume create --driver vieux/sshfs \
 -o sshcmd=192.168.5.106:/home/xzg\
 -o password=xzg\
 sshvolume

使用已有镜像,创建容器

#查看已有镜像:
[root@localhost docker]# docker images
REPOSITORY     TAG         IMAGE ID      CREATED       SIZE
nginx        latest       da5939581ac8    7 days ago     108MB
#使用本地镜像创建容器
docker run -d \
 -it \
 --name sshfs-container \
 --mount src=sshvolume,target=/app,type=volume,volume-driver=vieux/sshfs\
 da5939581ac8

进入容器中查看是否挂载成功

[root@localhost docker]# docker exec -it 228d13ee572a bash
root@228d13ee572a:/# ls
app bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@228d13ee572a:/# cd app/
root@228d13ee572a:/app# ls
a.txt docker

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解Docker目录挂载的方法总结

    Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定. 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定: # docker run -it -v /test:/soft centos /bin/bash 这样在容器启动后,容器内会自动创建/soft的目录.通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录. 貌似简单,其实不然,下面我们来验证一下: 一.容器

  • docker基础知识之挂载本地目录的方法

    Docker可以支持把一个宿主机上的目录挂载到镜像里. 复制代码 代码如下: docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash 通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径. 现在镜像内就可以共享宿主机里的文件了. 默认挂载的路径权限为读写.如果指定为只读可以用:ro 复制代码 代码如下: docker run -it -v /home/dock/Downloads:/u

  • 详解Docker挂载本地目录

    docker可以支持把一个宿主机上的目录挂载到镜像里. docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash 通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径. 现在镜像内就可以共享宿主机里的文件了. 默认挂载的路径权限为读写.如果指定为只读可以用:ro docker run -it -v /home/dock/Downloads:/usr/Downloads:ro ubuntu

  • 详解挂载运行的docker容器中如何挂载文件系统

    前言 感觉最近很多人都在问docker相关的问题,关于怎么操作一个已经启动的docker容器的文件系统,首先我发现这非常困难,因为 mnt的命名空间. 为了登录进入一个已经启动的docker容器,我们需要这么做: 使用nsenter来在临时挂载点上挂载整个docker容器的文件系统. 创建一个特定目录的绑定挂载来当作卷来使用. 卸载临时挂载. 好吧,开始实践. 启动一个名为charlie的docker实例: $ docker run --name charlie -ti ubuntu bash

  • docker运行容器远程挂载卷的方法

    docker容器中卷的使用 创建卷,卷本身有多种方式例如下面创建的几种: 下面是官方的基本步骤: 创建一个卷: $ docker volume create my-vol 查看: $ docker volume ls local my-vol 查看卷的详情: $ docker volume inspect my-vol [ { "Driver": "local", "Labels": {}, "Mountpoint": &qu

  • 使用Docker将容器目录挂载到主机上的实现方法

    目录 一.基本介绍 二.将容器目录挂载到主机 一.基本介绍 这里我们主要介绍 Docker 里的一个命令,叫做 --mount,其本质上来说和 --volume 命令并没有太大区别,因为这两个命令都是用来给容器提供一个挂载目录.唯一的区别便是,容器的挂载类型不同,那么效果也会有所不同. 容器的挂载类型: bind:将宿主机的指定目录挂载到容器的指定目录,以覆盖的形式挂载(这也就意味着,容器指定目录下的内容也会随着消失) volume:在宿主机的 Docker 存储目录下创建一个目录,并挂载到容器

  • docker修改容器配置文件的3种方法总结

    目录 run时候已经进行绑定操作 修改未绑定的配置文件 拷贝容器内外的文件操作 修改对外端口等 总结 run时候已经进行绑定操作 在启动容器的时候可以通过 -v双向绑定本地的某文件,这样任意修改哪一个都会同步变化docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -p: 指定端口映射,格式为:主机(宿主)端口:容器端口 –volume , -v: 绑定一个数据卷 -d: 后台运行容器,并返回容器ID: –name=“redis”: 为容器指定一个名称: -

  • 详解docker nginx 容器启动挂载到本地

    首先nginx容器内部的结构: 进入容器: docker exec -it b511b6049f57 bash 查看容器的结构目录:其实每一个容器就相当于一个独立的系统. root@b511b6049f57:/# ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr nginx的结构目录在容器中: 日志位置:/var/log/nginx/ 配置文件位置:/etc/nginx/

  • 使用Docker运行Microsoft SQL Server 2017的方法

    最近每天都在空闲时间努力编写Apworks框架的案例代码WeText.在文本发布和处理微服务中,我打算使用微软的SQL Server for Linux来做演示,于是也就在自己的docker-compose中加入了MS SQL Server的服务.其实在Docker中运行SQL Server是非常容易的,今天大概做个介绍吧. 启动Microsoft SQL Server 2017容器 下面是我目前WeText案例中用于搭建基础结构服务的docker-compose.yml文件(该文件将来还会变动

  • docker 查看容器的挂载目录操作

    只显示Docker容器挂载目录信息 docker inspect --format "{{.Config.Volumes}}" 369a1376f78c 显示Docker容器和物理主机挂载目录信息 方法一 docker inspect -f "{{.Mounts}}" 369a1376f78c 方法二 docker inspect 369a1376f78c | grep Mounts -A 50 补充:Docker 显示某个容器所有的挂载目录 docker insp

  • Docker定制容器镜像的2种方法(推荐)

    一.需求 由于在测试环境中使用了docker官网的centos 镜像,但是该镜像里面默认没有安装ssh服务,在做测试时又需要开启ssh.所以上网也查了查资料.下面详细的纪录下.在centos 容器内安装ssh后,转成新的镜像用于后期测试使用. 二.镜像定制 第一种方式(手动修改容器镜像) 1.先下载centos镜像 [root@docker ~]# docker pull centos 2.启动容器并进行配置 启动容器, [root@docker ~]# docker run -it -d --

  • 浅谈Docker run 容器处于created状态问题

    在最近遇到的一次问题中,有这样一种现象: 系统有一个测试脚本会不断的执行docker run命令来运行容器,在测试过程中发现有一个情况是,有时候容器没有完全被运行到"Up"状态,而是处于"created"状 态,现象十分奇怪. 上环境首先查看了"created"状态的容器,以及dockerd日志: (1) dockerd的日志中只有"post create"请求,但是居然没有收到该容器的"post start&quo

  • Docker端口映射实现网络访问的方法

    Docker运行容器之后却发现没IP,没端口,那要如何访问容器呢? 下面我来介绍下docker通过端口映射来实现网络访问 一.从外部访问容器应用 在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的. 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数指定端口映射. 先来说说p和P吧 -p 可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器 -P 它会随机映射一个端口至容器内部开放的网络端口(范围不详,似乎都上万) 先申明

  • Docker 给运行中的容器设置端口映射的方法

    一.概念 Docker 端口映射即映射容器内应用的服务端口到本机宿主机器. 二.实现 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数两种方式来指定端口映射. 1. 随机映射 使用 -P 参数时,Docker 会随机映射一个端口到内部容器开放的网络端口,如下开启一个 nginx 服务: $ docker run -d -P nginx e93349d539119dc48dc841e117f6388d6afa6a6065b75a5b4aedaf5fb2a051fc

随机推荐