sudo docker run \\
--init \\
--sig-proxy=false \\
--name nextcloud-aio-mastercontainer \\
--restart always \\
--publish 80:80 \\
--publish 8080:8080 \\
--publish 8443:8443 \\
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \\
--volume /var/run/docker.sock:/var/run/docker.sock:ro \\
nextcloud/all-in-one:latest
sudo docker run 이 명령은 도커 컨테이너를 생성하고 실행하는 기본 명령어입니다. sudo는 관리 권한으로 명령을 실행하며, docker run은 새로운 도커 컨테이너를 실행하는 명령입니다.
--init 이 옵션은 컨테이너 내에서 프로세스가 제대로 관리될 수 있도록 tini라는 작은 init 시스템을 컨테이너에 포함시킵니다. 기본적으로 docker는 프로세스 관리 기능이 없기 때문에, 이를 보완하여 좀 더 효율적으로 프로세스를 처리합니다. 이를 통해 좀 더 안전하게 프로세스를 종료하고, 자식 프로세스가 제대로 처리되지 않을 때 문제가 발생하는 것을 방지합니다.
--sig-proxy=false 기본적으로 도커는 시그널(SIGTERM, SIGINT 등)을 호스트에서 컨테이너 내부의 프로세스로 전달합니다. 그러나 이 옵션을 사용하면 호스트에서 컨테이너로 시그널을 전달하지 않도록 설정할 수 있습니다. 즉, 컨테이너 내의 프로세스는 외부 시그널을 무시하게 됩니다.
--name nextcloud-aio-mastercontainer 이 옵션은 컨테이너의 이름을 지정합니다. nextcloud-aio-mastercontainer는 이 컨테이너의 고유 이름이 됩니다. 나중에 컨테이너를 관리할 때, 이 이름을 통해 컨테이너를 쉽게 식별하고 제어할 수 있습니다.
--restart always 이 옵션은 컨테이너가 종료되었을 때, 항상 자동으로 다시 시작되도록 설정합니다. 예를 들어, 컨테이너가 의도치 않게 종료되거나 서버가 재부팅될 때도 컨테이너가 자동으로 재시작됩니다.
--publish 80:80 이 옵션은 호스트의 80번 포트를 컨테이너의 80번 포트에 연결합니다. 즉, 호스트의 80번 포트로 들어오는 HTTP 요청이 컨테이너 내부의 80번 포트로 전달됩니다.
--publish 8080:8080 이 옵션은 호스트의 8080번 포트를 컨테이너의 8080번 포트에 연결합니다. 이것은 HTTP 외의 다른 포트에서 서비스를 제공할 때 유용하며, Nextcloud 설치 과정이나 웹 애플리케이션의 여러 구성 요소에서 사용될 수 있습니다.
--publish 8443:8443 이 옵션은 호스트의 8443번 포트를 컨테이너의 8443번 포트에 연결합니다. 8443은 일반적으로 HTTPS 프로토콜을 사용하는 포트입니다. SSL/TLS를 사용하는 안전한 통신을 위해 이 포트를 사용합니다.
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config 이 옵션은 도커 볼륨을 설정합니다. nextcloud_aio_mastercontainer는 호스트에서 관리되는 도커 볼륨 이름이며, 이 볼륨이 컨테이너의 /mnt/docker-aio-config 경로에 마운트됩니다. 이 디렉토리는 Nextcloud AIO 설정 파일을 저장하는 데 사용됩니다.
--volume /var/run/docker.sock:/var/run/docker.sock:ro 이 옵션은 호스트의 도커 소켓 파일(/var/run/docker.sock)을 컨테이너 내의 동일한 경로로 읽기 전용(:ro)으로 마운트합니다. 이를 통해 컨테이너는 도커 엔진과 통신할 수 있으며, 호스트에서 실행 중인 다른 도커 컨테이너를 제어하거나 정보를 가져올 수 있습니다.
nextcloud/all-in-one:latest 마지막 부분은 사용하고자 하는 도커 이미지를 지정합니다. nextcloud/all-in-one:latest는 Nextcloud AIO(올인원) 설정에 필요한 모든 구성 요소를 포함한 최신 버전의 이미지를 나타냅니다. latest는 해당 이미지의 최신 버전을 다운로드하고 실행하라는 의미입니다.
이 명령어는 Nextcloud의 올인원(AIO) 컨테이너를 설정하고, 다양한 포트 및 볼륨 설정을 통해 컨테이너가 서버 환경에서 안정적으로 동작할 수 있도록 구성하는 것입니다.