link docker 中的目录到主机系统上的目录

link dir in docker to dir on host system

我想知道如何 - 本质上 - 挂载一个 docker 目录,这样我就可以在我的文件管理器中看到这些文件,然后我所做的所有更改都会出现在 docker图片。我是否需要在 docker 图像上安装 ssh 服务器并在其中安装 sshfs?这似乎过于复杂,而且由于缺少 ssh 服务器,我认为必须有更好的方法。

我正在关注此处找到的文档: https://hub.docker.com/_/wordpress/

遗憾的是,该文档严重缺乏(实际上就像我找到的所有 docker 文档一样)。

我想这与音量有关,但我不知道它们是如何工作的。

感谢您的帮助!

docker-编写文件:

version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

您可以使用卷标志并遵循模式 /your/machine/path:/container/path/ 将计算机上的目录绑定到容器 例如

docker run -v /host/project_folder:/container/project <image_name>

您可以在文件浏览器中查看 /host/project_folder/container/project 相同。您在此目录中所做的任何更改也将反映在容器中,而它是 运行。请注意,您在此文件夹中所做的任何更改都不会持久

在与 docker-compose.yml.

相同级别上创建目录“wordpress”和“db”

在 docker-compose.yml 文件中输入以下内容(注意卷下的“./”和末尾省略的“卷:”内容):

version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - ./wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - ./db:/var/lib/mysql

start docker and 运行 "$ docker-compose up" 你会发现你创建的目录包含了docker镜像中的文件