Docker 在容器中找不到 MariaDB 卷?
Docker MariaDB volume not found in container?
这个 docker-compose.yml
文件工作正常:
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
image: docker-test
container_name: docker-test
ports:
- 9000:80
volumes:
- '/var/www/docker-test/:/srv/app/'
db:
image: mariadb:10.4
container_name: docker-test-db
ports:
- 33061:3306
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- '/docker-db-data/docker-test/:/var/lib/mysql/'
主机中的卷创建得很好(/docker-db-data/docker-test/
)但是当我 "SSH" 到容器时,我似乎找不到 /var/lib/mysql
例如,
[root@localhost docker]# docker exec -it docker-test bash
root@2d03e775f531:# ls /var/lib/mysql
ls: cannot access '/var/lib/mysql': No such file or directory
这是预期的吗?如果不是,它实际位于哪里?
volumes:
附加到特定容器。您的 docker exec docker-test
命令附加到 app:
容器,但您实际上想要附加到您命名为 docker-test-db
的 db:
容器。如果在末尾添加 -db
,它将起作用:
docker exec docker-test-db ls /var/lib/mysql
这个 docker-compose.yml
文件工作正常:
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
image: docker-test
container_name: docker-test
ports:
- 9000:80
volumes:
- '/var/www/docker-test/:/srv/app/'
db:
image: mariadb:10.4
container_name: docker-test-db
ports:
- 33061:3306
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- '/docker-db-data/docker-test/:/var/lib/mysql/'
主机中的卷创建得很好(/docker-db-data/docker-test/
)但是当我 "SSH" 到容器时,我似乎找不到 /var/lib/mysql
例如,
[root@localhost docker]# docker exec -it docker-test bash
root@2d03e775f531:# ls /var/lib/mysql
ls: cannot access '/var/lib/mysql': No such file or directory
这是预期的吗?如果不是,它实际位于哪里?
volumes:
附加到特定容器。您的 docker exec docker-test
命令附加到 app:
容器,但您实际上想要附加到您命名为 docker-test-db
的 db:
容器。如果在末尾添加 -db
,它将起作用:
docker exec docker-test-db ls /var/lib/mysql