docker run 명령어를 docker compose로 변환하기
도커란? (잡담)
윈도우 사용하시는 분들은 거의 안쓰지만 리눅스에서는 신세계가 열리는 도커란 놈이 있죠. 뭐 이 글 읽으시는 분들은 뭔지 다 알겠지만요.
그냥 궁금하신 분들을 위해 초간단 설명을 하자면 가상화 기술을 이용한 컨테이너로 소프트웨어를 실행하는 기술입니다.
도커를 사용하면 각각의 소프트웨어를 독립적인 공간(컨테이너)에서 실행할 수 있습니다. OS와는 별도로 컨테이너 내의 설정을 다르게 하거나 컨테이너 안에만 추가 소프트웨어를 설치하거나 할 수도 있어서 OS 관리 및 보안에도 유리합니다. OS뿐만 아니라 도커 컨테이너로 실행하는 소프트웨어 관리도 편합니다. 저는 리눅스 커맨드랑 안친해서 도커 없으면 리눅스 사용이 너무 불편합니다.
도커를 예전에 mirantis라는 소프트웨어 회사에서 docker를 인수했는데 risc-V처럼 상장하면 초대박일겁니다. 근데 영 소식이...
도커 명령어를 도커 컴포즈로 변환 ("docker run" to "docerk-compose.yml")
도커를 사용할 때 docker run으로 실행하는 쪽을 선호하시는 분들도 있습니다만 저 같은 경우는 docker-compose 쪽을 훨씬 더 많이 사용합니다. 폴더별로 docker-compose.yml 파일 보관하기에도 편하고, 라인이 나눠져 있어 수정도 편합니다. 그래서 여러 컨테이너를 복합적으로 사용하지 않을 때에도 전부 docker-compose를 이용합니다.
도커 런 (docker run)명령어로 작성된 라인을 도커 컴포즈를 변환해주는 사이트를 이용하면 docker run 명령어를 docker-compose.yml 로 쉽게 변환할 수 있습니다.
Composerize
www.composerize.com
docker run 명령어 예
docker run -d --name navidrome --restart=unless-stopped -v /path/to/music:/music -v /path/to/data:/data -p 4533:4533 -e ND_LOGLEVEL=info deluan/navidrome:latest
docker-compose.yml 파일로 변환 예
version: '3.3'
services:
navidrome:
container_name: navidrome
restart: unless-stopped
volumes:
- '/path/to/music:/music'
- '/path/to/data:/data'
ports:
- '4533:4533'
environment:
- ND_LOGLEVEL=info
image: 'deluan/navidrome:latest'
사이트를 이용하면 위와 같이 대략적인 변환이 이루어집니다. 다만, 몇몇 항목이나 변수가 들어간 라인은 제대로 변환이 되지 않을 수도 있습니다.
따라서 만약 소프트웨어 제작자가 docker-compose.yml 예제를 적어준다면 그것을 사용하는 쪽이 더 좋습니다.
#변환 #docker #도커 #docker-compose #도커컴포즈