标签: docker-volume

Docker - chown:更改“/data/db”的所有权:不允许操作

我正在尝试使用 Docker 运行我的应用程序,这是我的 yml 文件内容来运行 mongo 容器。

\n
 services:\n   mongodb:\n    image: mongo:3.4\n    #    ports:\n    #        - "27017:27017"\n    volumes:\n      - ./data/mongo:/data/db\n    restart: always\n
Run Code Online (Sandbox Code Playgroud)\n

并在 contianer 中收到此错误:(运行 docker log 命令后看到此错误)

\n
\n

chown:更改“/data/db”的所有权:不允许操作

\n
\n

主机有 ./data/mongo 文件夹,以下是详细信息。

\n
drwxrwxrwx  2 nfsnobody nfsnobody 4096 May 11 23:13 mongo\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试按照其中一个论坛的建议在主机上运行它。

\n
sudo chgrp 1000 ./data/mongo\n
Run Code Online (Sandbox Code Playgroud)\n

不知道这将如何帮助解决问题,因为我们得到的错误是在容器文件夹中而不是来自主机的错误,无论如何我都尝试过。

\n

但得到了这样的回应:

\n
\n

chgrp:更改 \xe2\x80\x98mongo\xe2\x80\x99 组:不允许操作

\n
\n

如何解决这个问题?除了“chgrp”之外还有其他解决方案吗?谢谢。

\n

这是完整的 docker-compose.yml 文件

\n
## You can generate a custom docker compose …
Run Code Online (Sandbox Code Playgroud)

mongodb docker docker-volume

10
推荐指数
2
解决办法
3万
查看次数

了解docker -v命令

我刚刚在youtube上阅读教程并尝试解释使用-v命令,IE为什么教程中的人使用-v命令?他使用命令,像这样,

docker run -v /var/lib/mysql --name=my_datastore -d busybox echo "my datastore"
Run Code Online (Sandbox Code Playgroud)

现在我理解IE上面的命令

my datastore 
Run Code Online (Sandbox Code Playgroud)

为容器指定一个特定名称.

-v /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)

上面的命令搜索busybox图像,如果没有找到它将从中拉出-v并在后台作为守护进程运行它.

执行run命令后,下面的行将回显到控制台.

docker run -v /var/lib/mysql --name=my_datastore -d busybox echo "my datastore"
Run Code Online (Sandbox Code Playgroud)

现在我不理解的部分如下:

my datastore 
Run Code Online (Sandbox Code Playgroud)

为什么-v这里使用的命令以及--name=my_datastore指定路径的原因是什么?我很难理解为什么使用上述行以及在什么情况下使用?谁能解释一下?

docker docker-volume

9
推荐指数
1
解决办法
7971
查看次数

docker-compose不会使用我的命名卷

所以我对码头工作者来说相当新.将我的命名卷附加到我的群中的服务时遇到问题.

这是我的docker-compose.yml ...

version: '3'
services:
  ned:
    image: keli
    ports:
      - "8080:8080"
    depends_on:
      - craig
      - paul
  craig:
    image: cb
    volumes:
      - cbKeli:/opt/couchbase/var
    ports:
      - "8091:8091"
  paul:
    image: pg
    volumes:
      - pgKeli:/var/lib/postgresql/data
    ports:
      - "5432:5432"
volumes:
  pgKeli:
  cbKeli:
Run Code Online (Sandbox Code Playgroud)

然而,在docker-compose up我结束新卷之后.

$ docker volume ls | grep -i keli
DRIVER              VOLUME NAME
local               cbKeli
local               kelidocker_cbKeli
local               kelidocker_pgKeli
local               pgKeli
Run Code Online (Sandbox Code Playgroud)

那是怎么回事?如何让我的新群体使用现有的命名卷?

docker docker-compose docker-volume

9
推荐指数
1
解决办法
279
查看次数

Kubernetes秘密卷与环境变量

有推荐的使用Kubernetes Secrets的方法吗?它们可以作为环境变量或使用卷安装公开。一个比另一个更安全吗?

environment-variables kubernetes docker-volume kubernetes-security kubernetes-secrets

9
推荐指数
1
解决办法
1343
查看次数

在 MacOS 上访问 Docker Volume 内容

当我docker volume inspect <dockerid>在 Mac 上执行 a时,我可以看到数据的路径,这显示为/var/lib/docker/volumes/<volume name>

在 Mac 上,此链接不存在,因为 docker 在非常小的 VM 内运行。

我可以使用screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty进入虚拟机,然后导航到文件夹以查看卷。

搞定了这一切,但我的问题是:如何链接主机上这些卷中的内容?

我试过这个:docker run -it --volume hello:/hello2 --name access_volumes busybox:latest /bin/sh你好是我创建的卷的名称。

我可以将主机上的文件夹链接到容器,但我想从主机备份内容或编辑卷的内容。

我怎么做?

macos docker docker-volume

9
推荐指数
1
解决办法
7975
查看次数

为什么我的 docker-compose 卷没有通过本地文件添加进行更新?

这是 my docker-compose.yml,它包含一个 web 服务,它在本地安装一个文件夹,以便在任何代码更改时watchmedo重新启动webappdjango 服务器。它是 nginx 的反向代理。

version: '3'
services:
  webapp:
    build:
      context: .
      dockerfile: ./web/Dockerfile
    volumes:
      - ./web/:/usr/src/app/
      - staticfile_volume:/usr/src/app/public
    entrypoint: >
      watchmedo auto-restart --recursive 
        --pattern="*.py" --directory="." 
          gunicorn myapp.wsgi:application -- --bind 0.0.0.0:9000
  nginx:
    build:
      context: .
      dockerfile: ./nginx/Dockerfile
    depends_on:
      - webapp
    volumes:
      - staticfile_volume:/usr/src/app/public
volumes:
  staticfile_volume:
Run Code Online (Sandbox Code Playgroud)

我的本地文件设置如下:

$ tree -L 2
.
??? docker-compose.yml
??? nginx
?   ??? Dockerfile
?   ??? nginx.conf
??? web
   ??? Dockerfile
   ??? manage.py
   ??? myapp
   ??? public
   ??? …
Run Code Online (Sandbox Code Playgroud)

django nginx docker docker-compose docker-volume

9
推荐指数
1
解决办法
8563
查看次数

显示所有 docker 卷的大小而不安装它们

如何列出所有 Docker 卷及其各自的大小。

docker volume inspect $(docker volume ls)
Run Code Online (Sandbox Code Playgroud)

提供有关所有卷但每个卷大小的信息。

最好,我想检查大小,而不必将它们安装到某个容器中,因为我有超过 20 个卷,其中包含一些神秘的“散列”卷名称,可能会产生一些错误,我正在尝试查找这些错误。

docker docker-volume

9
推荐指数
2
解决办法
3494
查看次数

如何删除(已删除的)docker-container 的 docker-volume?

我有运行大量 Docker 容器的测试。他们每个人都有一个卷。

我如何知道需要删除的卷名称?

例如:

~ docker run -d registry:2 
~ docker volume inspect c80fc65a79039d70cf54b3af3ab66b378dec42d0757928ae94277b197d8d8104
[
    {
        "CreatedAt": "2020-08-14T11:33:50Z",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/c80fc65a79039d70cf54b3af3ab66b378dec42d0757928ae94277b197d8d8104/_data",
        "Name": "c80fc65a79039d70cf54b3af3ab66b378dec42d0757928ae94277b197d8d8104",
        "Options": null,
        "Scope": "local"
    }
]
Run Code Online (Sandbox Code Playgroud)

手动停止并删除registry:2容器后,该卷仍然存在。

我不想删除所有卷,因为其中一些仍在使用中。

docker docker-volume

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

Mysql docker 容器不断重启

容器不断重启。我试过

  • docker-compose down -v
  • 泊坞窗音量 rm

容器工作正常,直到我的电脑意外关闭。

日志

2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.

2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'

2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.

2021-03-27 13:16:08+00:00 [ERROR] [Entrypoint]: MYSQL_USER="root", MYSQL_USER and MYSQL_PASSWORD are for configuring a regular user and cannot be used for the root user

Remove MYSQL_USER="root" and use one of the following to control the root user password:

- MYSQL_ROOT_PASSWORD

- MYSQL_ALLOW_EMPTY_PASSWORD

- …
Run Code Online (Sandbox Code Playgroud)

mysql docker dockerfile docker-compose docker-volume

9
推荐指数
4
解决办法
6525
查看次数

Docker - 无法挂载本地卷,没有这样的文件或目录

我有一个 docker-compose 工作了很长时间然后突然停止了。我收到:无法安装本地卷,没有这样的文件或目录

这已经工作了几个月,并在几周前开始出现错误。docker-compose 位于源代码管理中,我可以看到它没有改变。我开始在一台新机器上安装它,不久之后我开始在我现有的盒子上安装它。我怀疑这是一种安全或政策设置。我尝试安装旧版本的 docker 桌面,但仍然出现错误。

这是命令和完整错误:

 docker-compose  up -d
[+] Running 0/1
 - Container dockertest_testimage_1  Starting                                                                      1.1s
Error response from daemon: error while mounting volume '/var/lib/docker/volumes/dockertest_testLoc/_data': failed to mount local volume: mount testimage:/var/lib/docker/volumes/dockertest_testLoc/_data, flags: 0x1000: no such file or directory
Run Code Online (Sandbox Code Playgroud)

这是给出相同错误的组合的测试版本。

version: '3.9'
services:
  testimage:
    image: ubuntu  
    volumes:       
      - testLoc:/var/opt/testing
volumes:
  testLoc:
    driver: local
    driver_opts: 
      type: "none"
      o: "bind"
      device: "./testimage"
Run Code Online (Sandbox Code Playgroud)

版本:

Docker version 20.10.11, build dea9396
OS Name:                   Microsoft Windows 10 Enterprise
OS Version:                10.0.19044 N/A …
Run Code Online (Sandbox Code Playgroud)

docker-compose docker-volume

9
推荐指数
0
解决办法
3951
查看次数