목록프로그래밍/docker (4)
쌓고 쌓다
docker-compose.yml를 다음과 같이 작성하고 사용하고 있었다... 보면 MYSQL_ROOT_PASSWORD를 작성해야한다.현재 깃허브에 docker-compose.yml도 올리면서 사용하고싶은데 비밀번호를 노출하고싶지 않다. 우연히 다른 코드들을 보았는데 ${}와 같이 따로 값들을 불러들이는 방법이 있다는걸 알았다. 도커 환경 변수 사용 방법은 다음과 같다. docker-compose.yml와 같은 위치에 ".env" 파일을 작성한다. ".env"에는 Key-Value 형식으로 값들을 작성하자. ".env"에서 불러온 값들로 어떤 값들이 채워졌는지는 다음과 같은 명령어로 확인할 수 있다.docker compose config 로컬에서 서버를 동작할때랑서버를 이미지 파일로 만들때 applic..
컨테이너에서 돌아가고 있는 서버에서 남긴 로그 파일들을 호스트에서 보관관리를 하고 싶었다.도커로 MySQL 이미지 파일을 volumes로 마운트를 해봤었다.https://non-stop.tistory.com/721 MySQL 데이터 백업 및 가져오기/Docker MySQL 볼륨 마운트MySQL의 데이터를 백업해보고 그 데이터를 Docker MySQL에 가져와보자. 그리고Docker 컨테이너를 통해 올린 DB 데이터를 Host에서 관리해보자. 먼저 Docker MySQL 볼륨을 마운트해보자.즉, Docker 컨테이너에non-stop.tistory.com 나는 volumes가 디비 관련해서 지원하는 옵션인줄 알았으나사실 도커 컨테이너와 호스트를 마운트하는 원리는 똑같았었다. 도커의 볼륨 설정이 마운트하는 설..
MySQL의 데이터를 백업해보고 그 데이터를 Docker MySQL에 가져와보자. 그리고Docker 컨테이너를 통해 올린 DB 데이터를 Host에서 관리해보자. 먼저 Docker MySQL 볼륨을 마운트해보자.즉, Docker 컨테이너에 올려진 DB의 데이터가 Host에서 관리되길 원하는것이다.docker-compose.ymlversion: '3'services: db: image: mysql:8.0.33 container_name: spot-db restart: always ports: - "3306:3306" command: - "--character-set-server=utf8mb4" - "--collation-server=utf8mb4_uni..
스프링부트 서버는 Container로 띄우고 DB는 로컬을 사용하길 원하는 상황이다. DB는 localhost만 접속이 가능한 상황인데 Docker 컨테이너에서 localhost는 로컬이 아닌 컨테이너 자신의 ip이다. 쉽게말해 컨테이너에서 localhost는 컨테이너이기 때문에 내 로컬에 접근하지 않는것이다. 그래서 Dokcer 컨테이너에서 local의 DB에 접근을 못하는 상황이다 application.properties를 다음과 같이 수정한다. spring.datasource.url=jdbc:mysql://host.docker.internal:3306/spot -> 원래는 mysql://localhost:3306 이지만 host.docker.internal로 컨테이너 내부에서 호스트 머신의 네트워..