일반적으로 Docker를 로컬에서 많이 사용하는데 로컬이 아닌 Remote에 있는 다른 서버의 도커를 빌드/컨테이너 생성/시작 등의 제어 및 상태수집을 하려면 Docker Remote API를 사용해야 합니다. 기본적으로 설치하고 서비스를 돌리면 Remote API를 구동하는 REST 서버가 구동하지 않기 때문에 옵션을 추가하는 방법을 알려드리겠습니다.
참고로 Remote API 사용은 취약점 공격대상이 될 수도 있기 때문에 가급적 보안상태가 양호한 서버에서 구동하는 것이 좋습니다. 구간암호화(TLS, SSH)는 당연히 해야 될테고요.
운용방법
sudo vi /usr/lib/systemd/system/docker.service
~~
ExecStart=/usr/bin/dockerd -D -H tcp://0.0.0.0:2375
~~
위 부분을 찾아서 빨간 글자를 추가합니다. 포트(2375)는 다른 것으로 해도 됩니다. -D는 디버그 모드이기 때문에 개발할 때는 붙이고 운용할 때는 성능을 고려하여 빼고 운용하는 것이 좋습니다.
sudo service docker restart
sudo systemctl daemon-reload
저장하고 빠져나오신 후, 위 명령을 순서대로 넣으세요. 서비스 재시작하면 두번째 명령을 실행하라는 경고문구가 나옵니다.
이렇게 서비스를 재실행하면 로컬에서 CLI명령이 먹지 않습니다. 로컬 소켓이 아닌 REST 서버를 통해 수행해야 하기 때문에 아래와 같이 명령을 수행합니다.
vi ~/.bash_profile
export DOCKER_HOST="tcp://0.0.0.0:2375"
이 환경변수는 ~/.bash_profile 등에 추가하여 쉘 진입 시 자동으로 추가되도록 하는 것이 좋을 겁니다.
별개로 Docker 서비스 로그를 보는 방법은 다음과 같습니다. Docker 컨테이너 로그가 아닌 도커데몬의 로그입니다. Remote API 자체에서도 에러가 나긴 하지만 서버로그도 같이 보는 것이 좋을 겁니다.
sudo tail -f /var/log/messages | grep dockerd
'써드파티 도구 > Docker' 카테고리의 다른 글
Docker로 PostgreSQL 구동 시 한글이 나오게 하는 방법 (0) | 2024.06.18 |
---|---|
[2021.08] Docker 로그 지우기 (0) | 2021.08.06 |
[2021.08] Docker 컨테이너 Save/Load (0) | 2021.08.06 |
[2021.08] Docker Build를 하는데 자꾸 network bridge 관련 오류가 발생한다면... (0) | 2021.08.04 |
[2020.11] 다중호스트에서의 Docker 운용방식에 대한 고찰 (0) | 2020.11.12 |