相关疑难解决方法(0)

Mac上的Docker Machine:在docker主机/ docker-machine上看不到挂载的卷?卷物理存储在哪里?

我在Macbook Pro笔记本电脑上运行docker-machine(0.5.0)和docker-compose(1.5.0)来让我的容器运行.

这意味着我正在使用docker-machine来创建我的虚拟机boot2docker驱动的HOST机器,它将运行我的docker守护程序并托管我的所有容器.

我想我缺少一些关于HOSTS和VOLUME概念的东西,因为它们指的是Docker和文档.

这是我的docker-compose.yml文件(web只是构建了php:5.6-apache图像):

web:
  restart: "always"
  build: ./docker-containers/web
  ports:
    - "8080:80"
  volumes:
    - ./src:/var/www/html
  links:
    - mysql:mysql

mysql:
  restart: "always"
  image: mysql:5.7
  volumes_from:
    - data
  ports:
    - "3306:3306"
  environment:
    - MYSQL_ROOT_PASSWORD=XXX

data:
  restart: "no"
  image: mysql:5.7
  volumes:
    - /var/lib/mysql
  command: "true" 
Run Code Online (Sandbox Code Playgroud)

Docker撰写卷的文件文档在这里:http://docs.docker.com/compose/compose-file/

它表示卷 - 将路径挂载为卷,可选择指定主机上的路径(HOST:CONTAINER),或访问模式(HOST:CONTAINER:ro).

在这种情况下主机是指我的由docker-machine创建的VM,对吗?还是我的本地macbook文件系统?将VM上的路径挂载到容器?

在网上我声明:

volumes:
  - ./src:/var/www/html
Run Code Online (Sandbox Code Playgroud)

这是将我的macbook pro上的本地macbook文件系统./src文件夹映射到我的Web容器.如果我的理解是正确的,不应该将我的VM上的./src文件夹映射到Web容器中的/ var/www/html吗?!从理论上讲,我认为我应该首先将我的本地mac文件系统文件夹./src复制到我的VM,然后我做这个卷声明.似乎docker-compose一下子神奇地做了所有这一切?困惑

最后,我们可以看到我正在创建一个仅限数据的容器来保存我的mysql数据.我宣布:

volumes:
   - /var/lib/mysql …
Run Code Online (Sandbox Code Playgroud)

mysql volumes docker docker-compose docker-machine

11
推荐指数
1
解决办法
3952
查看次数

在OSX上将卷装载到Docker镜像

在Mac上,如何将卷安装到Docker容器?

在我的linux机器上,这很容易.我需要做的就是-v /src/webapp:/opt/webapp运行容器时.但Mac不同,因为我必须运行boot2docker才能在VirtualBox中运行VM.我试过跑步

boot2docker init
boot2docker up
boot2docker ssh # to poke around
boot2docker stop
VBoxManage sharedfolder add "boot2docker-vm" --name "Users" --hostpath /Users
boot2docker up
boot2docker ssh "sudo modprobe vboxsf"
Run Code Online (Sandbox Code Playgroud)

但我明白了

modprobe: module vboxsf not found in modules.dep
Run Code Online (Sandbox Code Playgroud)

如果我忽略它并仍然尝试像这样挂载在VM上

boot2docker ssh "sudo mkdir /test && sudo mount -t vboxsf Users /test"
Run Code Online (Sandbox Code Playgroud)

我明白了

mount: mounting Users on /test failed: No such device
Run Code Online (Sandbox Code Playgroud)

我觉得我错过了一些非常简单的东西,但我无法弄明白.任何帮助将不胜感激.

macos mount docker boot2docker

7
推荐指数
1
解决办法
8800
查看次数

使用 PySpark 时如何将 jdbc 驱动程序添加到类路径?

如何/在哪里安装 spark sql 的 jdbc 驱动程序?我正在运行all-spark-notebook docker 映像,并尝试将一些数据直接从 sql 数据库中提取到 spark 中。

从我可以告诉我可以告诉我需要在我的司机Classpath,我只是不知道如何做到这一点的pyspark?

from pyspark.sql import SparkSession
spark = SparkSession \
    .builder \
    .master("local") \
    .appName("Python Spark SQL basic example") \
    .getOrCreate()

jdbcDF = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:postgresql:dbserver") \
    .option("dbtable", "jdbc:postgresql:dbserver") \
    .load()

---------------------------------------------------------------------------
Py4JJavaError                             Traceback (most recent call last)
<ipython-input-2-f3b08ff6d117> in <module>()
      2 spark = SparkSession     .builder     .master("local")     .appName("Python Spark SQL basic example")     .getOrCreate()
      3 
----> 4 jdbcDF = spark.read     .format("jdbc")     .option("url", …
Run Code Online (Sandbox Code Playgroud)

apache-spark-sql pyspark

7
推荐指数
1
解决办法
8120
查看次数

无法在 Docker 中编译打字稿

我想在我的 node.js Web 服务器中使用 typescript。但是,Web 服务器位于 Docker 容器中。我像打击一样使用Dockerfile:

FROM node:latest
COPY code/ /usr/local/lib
WORKDIR /usr/local/lib

RUN npm install -g koa@2
RUN npm install -g sequelize
RUN npm install -g mysql
RUN npm install -g typescript

CMD ["sh", "-c", "rm", "webApp.js"]
CMD ["sh", "-c", "tsc", "webApp.ts"]
CMD ["node", "webApp.js"]
Run Code Online (Sandbox Code Playgroud)

在我构建我的 Docker 之后,我发现在 CMD 命令之后没有生成 webApp.js。为什么,我应该如何解决?谢谢。

node.js typescript docker dockerfile

6
推荐指数
1
解决办法
9199
查看次数

如何使用本地 nuget 包源进行 Dockerfile dotnet 还原

我正在尝试使用本地 nuget 包进行 dotnet 恢复,我尝试按照本教程进行操作:dotnet restore w/out internet

我的问题:

即使它存在于该路径上,它也看不到该路径。点击图片.

我使用的服务器位于公司网络上,这就是我无法使用 dotnet restore 的原因,所以我也遇到了与此链接类似的 nuget.org 问题。

环境:

对于示例项目,我使用了:

  • 来自 Visual Studio 2017 的基本 .Net Core Web 应用程序
  • Docker 企业版(无 UI),Windows 容器
  • Windows Server 2016 作为操作系统。

更新 10/15/2018

虽然@omajid 的回答非常有帮助,但我相信 docker volume mount 仅在使用 docker run 时才可能,不能在 Dockerfile(将用于构建管道)中使用。得到了与我想要实现的类似的链接。如何在 Docker 容器中挂载主机目录

docker .net-core dockerfile

5
推荐指数
1
解决办法
1万
查看次数

授予 Docker 访问容器外部数据库文件的权限

我正在尝试测试由 Docker 管理的 Django 应用程序。由于这是一个仅供我使用的开发项目,因此我使用 sqlite3 数据库后端。但是,因为我将用大量生成的数据填充此测试数据库,并且因为我不完全信任 Docker,所以我想将此 sqlite3 db 文件存储在容器外部的我的主目录中,以确保它不会不会被删除或丢失。

然而,根据设计,Docker 使得容器内的程序很难访问这些容器外部的文件。如何更新我的 Docker 配置以允许访问我的主目录中的这一特定数据库文件?

django docker

5
推荐指数
1
解决办法
2万
查看次数

无法与 Docker 中的容器共享本地 Windows 路径

Docker 新手,Docker Toolbox在 Win 10 x64 上运行。

我正在尝试与容器(在本例中为 Portainer)共享(挂载)本地 Windows 路径,以便容器将其所有配置设置保存在我的 PC 本地,以便我始终可以升级容器,同时仍然拥有它的配置持久性。

我已经阅读/观看了许多教程、参考、文档、视频等,我正在尝试做他们似乎解释的事情,但是当我创建安装了本地路径的容器然后进入容器时,设置一些配置设置,然后查看我安装的 Windows 路径,那里没有保存任何内容。

不确定是什么问题?

这是我正在运行的 docker cmd 示例:

docker run -it -v /c/Servers/DockerConfigs/Portainer:/data :P portainer/portainer
Run Code Online (Sandbox Code Playgroud)

据我了解,存储在/data容器文件夹中的任何内容也应该保存到主机上的 Windows 文件夹中C:\Servers\DockerConfigs\Portainer,但没有任何内容保存到该 Windows 文件夹中......

我还尝试将主机上的一些文件复制到该 Windows 文件夹中,然后在容器中查看该/data文件夹以查看它们是否显示在使用中,ls -a但同样,那里没有任何显示...

有谁知道我错过了什么?

mount shared-directory docker

5
推荐指数
1
解决办法
4689
查看次数

如果 docker 重新启动,为什么我会丢失数据?

我是 docker 新手,需要一些建议。我即将用 Gitea 建立我自己的个人 git 存储库。docker compose 文件可以在下面看到。当我第一次运行文件时,一切都很好。当我重新启动计算机或 Docker 时出现问题,然后页面加载但它是空的,没有存储库,什么都没有。此外,无法使用首次安装后设置的凭据登录。重新启动后,与数据库的连接似乎丢失了。

码头工人撰写文件:

version: "2"

networks:
  gitea:
    external: false

volumes:
  gitea:
    driver: local

services:
  server:
    image: gitea/gitea:latest
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - DB_TYPE=mysql
      - DB_HOST=db:3306
      - DB_NAME=gitea
      - DB_USER=gitea
      - DB_PASSWD=gitea
    restart: always
    networks:
      - gitea
    volumes:
      #- ./gitea:/data
       - gitea:/data
    ports:
       - "3000:3000"
       - "222:22"
    depends_on:
      - db

  db:
    image: mysql:5.7
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    volumes:
      - ./mysql:/var/lib/mysql
Run Code Online (Sandbox Code Playgroud)

docker

5
推荐指数
1
解决办法
9647
查看次数

在 docker-compose 中的 Spring Boot 应用程序中使用外部配置

我有一个 Spring Boot 应用程序,用于com.spotify.dockerfile-maven-plugin构建我的应用程序 org.rtu/some-importer 的 docker 映像

我的 docker-compose.yml 是:

version: '3'
services:
  some-importer:
    image: org.rtu/some-importer
    build: .
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka: 
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 172.17.0.1
      KAFKA_CREATE_TOPICS: "test:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)

我怎么能说的过程中docker-compose up,它应该使用一个外部config.properties的/data/some-importer/config文件夹?

spring spring-boot docker-compose

2
推荐指数
1
解决办法
8874
查看次数