DevOps./Docker 14

[Docker] 도커 컴포즈 (Docker Compose)

도커 컴포즈 (Docker Compose) 단일 서버에서 여러 컨테이너를 프로젝트 단위로 묶어서 관리 docker-compose.yml YAML 파일을 통해 명시적 관리 프로젝트 단위로 도커 네트워크와 볼륨 관리 프로젝트 내 서비스 간 의존성 정의 가능 프로젝트 내 서비스 디스커버리 자동화 손 쉬운 컨테이너 수평 확장 프로젝트 (Project) 도커 컴포즈에서 다루는 워크스페이스 단위. 함께 관리하는 서비스 컨테이너의 묶음. 프로젝트 단위로 기본 도커 네트워크가 생성 됨. 서비스 (Service) 도커 컴포즈에서 컨테이너를 관리하기 위한 단위. scale을 통해 서비스 컨테이너의 수 확장 가능. 컨테이너 (Container) 서비스를 통해 컨테이너 관리. 컨테이너 (Container) 서비스를 통해 컨테..

DevOps./Docker 2022.02.01

[Docker] MariaDB 도커 이미지 생성하기

위 Dockerfile이 정상적으로 동작하려면 우선 /usr/local/var/mysql 디렉토리에서 db파일을 ./mysql 디렉토리에 백업해놓아야한다. 위와 같이, 이전에 생성했던 데이터베이스 'mydb'가 해당 디렉토리에 포함되어 있는 것을 확인해 볼 수 있다. 그러면 다음과 같이, 해당 mysql 디렉토리를 현재 docker-files 디렉토리에 copy 해보자. 정상적으로 copy가 된 것을 확인해볼 수 있다. 이제 Dockerfile을 작성해보자. 빌드가 정상적으로 완료되었다. 만약, 빌드가 정상적으로 동작하지 않고 상태가 Exited가 되었다면 다음과 같이 ENTRYPOINT에 "--user=root"를 작성해주고 다시 빌드하면 된다. $ docker run -d -p 3306:3306 --..

DevOps./Docker 2022.01.29

[Docker] ApiGateway Service 도커 이미지 생성하기

각각의 정보가 127.0.0.1 또는 localhost로 되어 있는데 컨테이너 내부에서 이렇게 사용하게 되면 컨테이너 자체가 되버리기 때문에, 외부에 있는 서비스를 뜻하는게 아니다. 그래서 다른 컨테이너 서비스의 ip adress를 사용해야하는데, 해당 ip adress는 동적으로 바뀔 수 있기 때문에 컨테이너 명을 명시하도록 한다. docker build -t gyeom/apigateway-service:1.0 . docker push gyeom/apigateway-service docker run -d -p 8000:8000 --network ecommerce-network \ -e "spring.cloud.config.uri=http://config-service:8888" \ -e "spring...

DevOps./Docker 2022.01.29

[Docker] docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:4369: bind: address already in use.

docker run 을 실행하던 중, 이미 4369 포트를 사용 중이라는 에러가 발생했다. lsof -i TCP:4369 // 해당포트의 사용중인 프로세스 리스트 조회 kill -9 21856 // 해당 프로세스 Kill 해당포트에서 사용중인 프로세스를 kill 한 뒤, 다시 프로세스 리스트를 조회한 결과 실행중인 프로세스는 없는 것을 확인했다. 그리고, 아까 에러를 발생하면서 Created 상태를 갖고 있는 Container를 삭제 해주었다. 다시 docker run 명령어 실행, 정상적으로 동작한 결과를 볼 수 있다.

DevOps./Docker 2022.01.28