Docker Compose
여러 개의 도커 컨테이너를 정의하고 실행하는 도구입니다.
도커 컴포즈를 사용하면 YAML 파일을 사용하여 여러 개의 컨테이너를 정의하고, 이를 하나의 애플리케이션으로 실행할 수 있습니다.
예를 들어, 웹 애플리케이션을 개발하고 있다고 가정해봅시다. 이 애플리케이션은 웹 서버, 데이터베이스, 캐시 서버 등 여러 개의 컨테이너로 이루어져 있을 수 있습니다. 이러한 컨테이너들을 각각 실행하고 관리하는 것은 번거로울 뿐 아니라, 컨테이너들 간의 의존성도 고려해야 합니다. 이때 도커 컴포즈를 사용하면 YAML 파일에 컨테이너들의 정보를 정의하고, 하나의 명령으로 컨테이너들을 실행할 수 있습니다. 또한, 컨테이너들 간의 의존성도 자동으로 관리해줍니다.
도커 컴포즈를 사용하면 애플리케이션을 쉽게 개발, 배포, 관리할 수 있습니다.
Install
(주의) apt-get install로 설치를 하면 이전(과거) 버전이 설치되어 호환이 제대로 안될 가능성이 많다.
저의 경우 다음과 같은 오류가 생겼었습니다.
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
여기를 참고하여 해결하였습니다.
저는 최신 버전인 v2.16.0을 설치했습니다.
$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ which docker-compose
/usr/local/bin/docker-compose
$ docker-compose -v
bash: /usr/bin/docker-compose: No such file or directory
설치가 /usr/local/bin/ 에 설치되어 심볼링 링크로 연결해주었습니다.
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ docker-compose -v
Docker Compose version v2.16.0
이후 다음과 같이 설치(docker-compose uo -d)가 잘 진행되었습니다.
심볼릭 링크
Ubuntu에서 심볼릭 링크(Symbolic Link)는 파일 시스템에서 파일이나 디렉토리를 가리키는 포인터입니다. 다른 말로는 소프트 링크(Soft Link)라고도 합니다. 심볼릭 링크는 원본 파일이나 디렉토리를 가리키는 경로를 저장하고 있으며, 이 경로를 따라가면 원본 파일이나 디렉토리에 접근할 수 있습니다.
심볼릭 링크는 ln 명령어를 사용하여 생성할 수 있습니다. ln 명령어에 -s 옵션을 추가하여 심볼릭 링크를 생성할 수 있습니다. 예를 들어, 다음과 같이 명령어를 입력하면 /path/to/original/file을 가리키는 symbolic_link라는 이름의 심볼릭 링크가 생성됩니다.
심볼릭 링크는 원본 파일이나 디렉토리가 삭제되어도 링크 파일 자체는 삭제되지 않습니다. 하지만, 원본 파일이나 디렉토리가 이동되거나 이름이 변경되면 심볼릭 링크도 더 이상 유효하지 않게 됩니다. 따라서 심볼릭 링크를 사용할 때는 원본 파일이나 디렉토리가 변경되지 않도록 주의해야 합니다.
'Dev > Docker' 카테고리의 다른 글
[Docker] 도커 캐시 삭제하기 (0) | 2023.07.20 |
---|---|
[Docker] 도커로 딥러닝 환경 구축 (0) | 2023.02.06 |