오류: '.docker-compose.yml' 파일에서 볼륨은 문자열이 아닌 매핑이어야 합니다.
질문:이 에러가 발생하는 이유는 무엇입니까?
오류: 파일 '.docker-compose.yml'에서 볼륨 'mariavolume'는 문자열이 아닌 매핑이어야 합니다.
도킹 스테이션 파일은 https://docs.docker.com/compose/wordpress/과 거의 동일합니다.
version: '2'
services:
wordpress:
image: wordpress:latest
restart: always
depends_on:
- db
ports:
- 8080:80
environment:
WORDPRESS_DB_PASSWORD: example
WORDPRESS_DB_HOST: 3306
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- maria_volume: /var/lib/mysql
volumes:
maria_volume: ~/mariadb
제 경우, 이 문제는 제가 이 시스템을 추가하지 못했기 때문에 발생하였습니다.:
볼륨 이름 뒤에 있습니다.
대신:
volumes:
- mysqldata:
입력했습니다.
volumes:
- mysqldata
docker-compose up
위와 같은 오류를 내게 주었다.
저는 방금 이 문제에 직접 대처했습니다.볼륨에 데이터만 저장하려면 다음과 같이 하십시오.이 조작에 의해서volume
의 일부로서 디스크에 유지되는Docker
를 참조해 주세요.
다음 질문은 여기가 어디인가이다.
도커 이미지 - 기본 위치 - 안에 있습니다.
C:\Users\Public문서\Hyper-V\가상 하드디스크
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- maria_volume: /var/lib/mysql
volumes:
maria_volume:
물론 호스트 디렉토리를 도커에 매핑한 후, 호스트 디렉토리를 도커에 포함시키지 않고Docker
를 참조해 주세요.그러면 다음과 같이 하면 됩니다.
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- maria_volume: /var/lib/mysql
volumes:
maria_volume:
driver: local
driver_opts:
o: bind
type: none
device: /C/mariadb
호스트 디렉토리를 통해 볼륨으로 매핑할 때(적어도 윈도우즈에서) 문제가 발생할 수 있습니다.read/write
아직 스스로 해결해야 할 문제인 것 같아요
유감스럽게도 이러한 기능은 없습니다.
도커 컴포지트로 최상위 볼륨을 매핑할 수 없습니다.
옵션은 다음과 같습니다.
- 컨테이너당 볼륨을 추가하여 거기에 매핑합니다.(여기서 다니엘이 한 것처럼)
(매핑이 있는) 작성 외부에 볼륨을 작성하여 작성에 사용합니다.
volumes: maria_volume: external: name: volume-name
이것을 시험해 보세요.
volumes:
- maria_volume: /var/lib/mysql
volumes:
maria_volume:
external:
name: ~/mariadb
볼륨의 올바른 구문은 다음과 같습니다.
volumes: first:
여기서 first는 볼륨에 사용할 자리 표시자 이름일 뿐입니다.
이것을 시험해 보세요.
version: '2'
services:
...
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- ~/mariadb:/var/lib/mysql
이거 먹어봐, 나한테는 효과가 있어
volumes:
- maria_volume: /var/lib/mysql
volumes:
maria_volume:
drive: local
난 당신과 같은 문제에 부딪혔고 마지막 절망의 행동으로 난 당신을 위해 노력했어요
volumes:
- maria_volume: /var/lib/mysql
전에
environment:
MYSQL_ROOT_PASSWORD: example
어떤 마법을 썼는지는 모르겠지만 제 경우에는 효과가 있었어요.
알려주세요!
이 방법은 다음과 같습니다.
#docker_compose.yml:
volumes:
postgres_data: {}
static: { }
언급URL : https://stackoverflow.com/questions/41334488/error-in-file-docker-compose-yml-volume-must-be-a-mapping-not-a-string
'programing' 카테고리의 다른 글
angularjs 약속을 돌려주기 전에 해결할 수 있나요? (0) | 2023.03.26 |
---|---|
wordpress 배열에 wp_param을 추가하는 방법 (0) | 2023.03.26 |
DAG(Directed Acyclic Graph)를 JSON으로 저장하려면 어떻게 해야 합니까? (0) | 2023.03.26 |
AngularJS - Attribute Directive 조건부로 사용 (0) | 2023.03.26 |
MongoDB: 필드가 존재하지 않아 문서를 검색하시겠습니까? (0) | 2023.03.26 |