도커 컨테이너를 관리하기 위해 Portainer를 사용하고 있었는데 내가 실수로 컨테이너를 중지시켜 Portainer에 접속할 수 없게 되었다. 처음 Portainer 환경을 구축한 사람은 다른 팀원이었는데 그 팀원이 예비군에 가있는 상태여서 내가 해결했어야 했다. Portainer 사용법부터 도커 컨테이너를 구동할 때 환경 변수를 입력하는 법 등을 구글링 하면서 해결하려고 노력했는데 완벽하게 해결되지 않아 카카오톡으로 그 팀원의 도움을 받아 겨우 해결했다. 그래도 찾아보면서 Let’s encrypt라는 SSL 인증서에 대해서도 알게 되었고 Portainer 관리법에 대해서도 알 수 있었다.
포테이너는 이렇게 생겼습니다.
웹 UI를 통해 컨테이너를 편하게 관리할 수 있습니다!
docker run -d -p 8000:8000 -p 9000:9000 --name portainer
와 같이 포테이너 컨테이너를 띄우면 사용할 수 있습니다.
docker container를 구동시킬 때 docker run 뒤에 여러 옵션을 붙일 수 있습니다.
--detach (-d)
컨테이너를 백그라운드에서 실행하도록 합니다. --detach 옵션을 사용하면 Docker는 컨테이너의 ID만 출력하고 터미널 입력을 바로 돌려줍니다. 이를 통해 사용자는 컨테이너가 실행되는 동안 다른 작업을 계속할 수 있습니다.
--name
컨테이너에 고유한 이름을 지정할 수 있습니다. 이 이름은 Docker 내에서 컨테이너를 식별하고 관리하는 데 사용됩니다. 이름을 지정하지 않으면 Docker는 자동으로 무작위의 이름을 생성합니다.
--volume (-v)
호스트 시스템의 디렉토리나 파일을 컨테이너 내부에 마운트하여 데이터를 컨테이너와 공유하거나 영구적으로 저장할 수 있게 합니다. 이 옵션은 데이터의 지속성을 보장하며, 여러 컨테이너 간에 파일을 공유하는 데도 유용합니다.
--env (-e)
환경 변수를 설정할 때 사용하는 옵션입니다. --env를 사용하면 컨테이너 내부에서 사용할 환경 변수를 정의할 수 있습니다. 이는 애플리케이션 설정이나 구성 정보를 컨테이너화된 애플리케이션에 전달하는 데 필수적입니다.
--publish (-p)
컨테이너의 포트를 호스트의 포트에 매핑합니다. 이를 통해 외부 네트워크에서 컨테이너의 애플리케이션에 접근할 수 있게 됩니다. --publish 옵션은 특정 포트 또는 포트 범위를 호스트와 링크하여 외부에서 내부 서비스를 사용할 수 있도록 합니다.
Let's Encrypt는 웹사이트의 보안을 강화하는 데 사용되는 무료 자동화 오픈 소스 인증 기관(Certificate Authority, CA)입니다. 이 서비스는 인터넷 보안을 강화하기 위해 개발되었으며, 웹사이트 운영자가 쉽게 SSL/TLS 인증서를 획득하여 HTTPS를 통한 안전한 웹 브라우징을 제공할 수 있도록 지원합니다.