나는 여전히 portainer의 도움을 받아 docker를 사용하여 몇 가지 사항을 이해하려고 노력하지만 다음에 대한 tuto를 찾을 수 없습니다.
1 - 영구 데이터: 영구 데이터베이스를 사용하여 Mariadb 컨테이너를 실행하고 싶습니다. 그래서 내 /home/user
. 불행하게도 마운트 지점은 항상 in /var/lib/docker/volumes
등에 있습니다. 어떻게 해야 합니까?
2 - 링크: 영구 데이터베이스를 사용하여 mysql 컨테이너를 실행하는 데 성공했다고 가정하고 nginx 컨테이너(영구 데이터 포함 /home/mountpoint:/data/www
)를 환경 변수(docker compose의 예:https://github.com/dadeg/docker-compose-nginx-php7-mysql/blob/master/docker-compose.yml). 네트워크 옵션이 보이지만 도움이 될 것 같지 않습니다. 컨테이너를 연결하고 더 많은 환경 변수를 사용하여 템플릿을 만드는 방법은 무엇입니까?
Docker-compose가 더 좋은 방법이 될 수 있을까요?
어떤 도움이라도 미리 감사드립니다.
jB
답변1
/var/lib/docker/volumes
Docker 또는 Portainer를 통해 볼륨을 생성하면 기본적으로 이 볼륨이 호스트에 저장됩니다 . 이것이 기본적이고 올바른 행동입니다.
Portainer를 통해 호출된 볼륨을 바인딩하려면 db
먼저 볼륨을 생성하세요. 그런 다음 컨테이너 > 컨테이너 추가 > 여기에 이름/이미지 지정 > 볼륨 탭으로 이동하여 방금 생성한 볼륨을 컨테이너의 경로에 바인딩할 수 있습니다.
이제 Ningx와 데이터베이스 간의 링크에 대해 설명합니다. 여기에서는 Docker 네트워크의 DNS를 활용하는 것이 좋습니다.
my-app
먼저 새 네트워크를 만듭니다( 예: 네트워크 호출 ). 그런 다음 이 네트워크 내에 데이터베이스와 Nginx 컨테이너를 모두 배포합니다. Docker DNS는 동일한 네트워크 내의 컨테이너가 컨테이너 이름을 사용하여 통신할 수 있는 기능을 자동으로 제공합니다. 따라서 데이터베이스 컨테이너 db
와 Nginx 컨테이너의 이름을 지정한 경우 nginx
ping을 수행할 수 있고 db
그 nginx
반대로도 가능합니다.