무기는 끈기

[웹 개발] 도커, 컨테이너 백그라운드 실행 및 자동으로 재시작 성공 본문

Dev/Web Dev

[웹 개발] 도커, 컨테이너 백그라운드 실행 및 자동으로 재시작 성공

김유비야 2023. 11. 5. 19:59

 

sudo docker update --restart always studentWeb

이 코드를 사용해서 터미누스를 열때마다 자동으로 재시작되도록 설정하였다.

 

나온 결과에 대한 자세한 설명은 하단에 붙여넣겠다.

이 로그는 Docker를 사용하여 LAMP 스택을 포함하는 컨테이너를 시작하는 과정을 나타냅니다. 여기서 LAMP는 Linux, Apache, MySQL, PHP를 의미합니다. 구체적으로 어떤 일이 발생하고 있는지 설명드리겠습니다.

APACHE_RUN_GROUP 환경 변수를 편집 중입니다.phpMyAdmin 설정을 수정 중입니다.MySQL 디렉토리 설정 중입니다.Apache/PHP가 앱 폴더에 쓸 수 있도록 설정 중입니다.Apache/PHP가 MySQL 폴더에 쓸 수 있도록 설정 중입니다.MySQL 설정을 편집 중입니다.기존의 MySQL 볼륨을 사용하고 있습니다.supervisord를 시작하고 있습니다. 이는 여러 프로세스를 관리하는 데 사용되는 도구입니다.

로그의 경고와 정보 메시지들:Supervisor is running as root.: supervisord가 root 권한으로 실행되고 있으며, 이는 일반적으로 보안상 좋지 않습니다.
사용자를 지정하여 권한을 낮출 수 있습니다.Included extra file "/etc/supervisor/conf.d/supervisord-apache2.conf"와 /etc/supervisor/conf.d/supervisord-mysqld.conf: Apache와 MySQL을 위한 추가 설정 파일이 포함되었습니다.RPC interface 'supervisor' initialized: 원격 프로시저 호출 인터페이스가 초기화되었습니다.

Server 'unix_http_server' running without any HTTP authentication checking: HTTP 인증 없이 서버가 실행 중입니다. 이는 보안 위험을 의미할 수 있습니다.

supervisord started with pid 1: supervisord 프로세스가 PID 1로 시작되었습니다.

apache2와 mysqld 서비스가 시작되었으며, 각각의 프로세스가 성공적으로 RUNNING 상태에 진입했음을 나타냅니다. 이는 웹 서버와 MySQL 데이터베이스가 정상적으로 시작되어 실행 중임을 의미합니다.

이제 이 컨테이너는 포트 1018을 통해 외부에서 Apache 서버에 접근할 수 있게 설정되었으며, --restart always 옵션으로 인해 시스템이 재부팅되거나 Docker가 재시작될 때 컨테이너도 자동으로 재시작됩니다.

백그라운드에서 자동으로 재시작되게 설정이 된건가요?

 --restart always 옵션을 포함하여 Docker 컨테이너를 실행하면, 해당 컨테이너는 Docker 데몬이 시작될 때마다 자동으로 재시작됩니다.
이는 Docker 호스트 시스템이 재부팅되거나 Docker 서비스가 재시작될 때도 마찬가지입니다.
이 설정으로 인해 컨테이너는 다음과 같은 상황에서도 자동으로 다시 시작됩니다:컨테이너가 충돌하여 종료될 경우Docker 서비스가 재시작되는 경우 (예: 시스템 업데이트 후)시스템이 재부팅될 경우따라서 설정한 대로라면, 백그라운드에서 studentWeb 컨테이너는 시스템이 재시작될 때마다 자동으로 실행될 것입니다.

 

꺄아악~ 드디어 성공.

 

apache2와 mysqld 서비스가 시작되었으며, 각각의 프로세스가 성공적으로 RUNNING 상태에 진입했음을 나타냅니다. 이는 웹 서버와 MySQL 데이터베이스가 정상적으로 시작되어 실행 중임을 의미합니다.

이제 이 컨테이너는 포트 1018을 통해 외부에서 Apache 서버에 접근할 수 있게 설정되었으며, --restart always 옵션으로 인해 시스템이 재부팅되거나 Docker가 재시작될 때 컨테이너도 자동으로 재시작됩니다.

 

 

 

이제 진짜로~ 로그인 페이지를 만들어보자.

 

 

 

 

....

url이 열리질 않는다..

 

 

웹 서버 문제: 웹 서버가 실행되지 않고 있거나 서버 설정에 문제가 있어 콘텐츠를 제공하지 못할 수 있습니다.
방화벽/포트 문제: 서버가 Docker 컨테이너에서 실행되고 있다면, 포트가 올바르게 노출되고 호스트에 매핑되어 있는지, 방화벽 설정이 해당 포트에서의 트래픽을 허용하는지 확인해야 합니다.
애플리케이션 오류: 웹 애플리케이션 내부에 오류가 있어 페이지가 제대로 로드되지 않을 수 있습니다.
잘못된 URL: URL이 정확한지, 올바른 포트에 접속하고 있는지 확인하세요.

이 문제를 해결하기 위해서 다음과 같은 절차를 시도해 볼 수 있습니다:

Docker 컨테이너 확인: docker ps 명령어를 사용하여 Docker 컨테이너가 실행 중인지 확인하고,
docker logs [container_name_or_id] 명령어로 컨테이너의 로그에서 오류를 찾아보세요.

포트 매핑 확인: Docker 실행 명령어에서 포트 매핑이 올바르게 설정되어 있는지 확인하고,
Docker 컨테이너가 실제로 컨테이너 내부의 포트 80에서 리스닝하고 있는지 확인하세요.

웹 애플리케이션 로그 확인: 웹 애플리케이션 자체의 로그를 살펴보면 페이지가 로드되지 않는 이유에 대한 더 많은 정보를 얻을 수 있습니다.

웹 브라우저 도구 사용: 브라우저의 개발자 도구(보통 F12를 눌러 접근 가능)를 사용하여 콘솔이나 네트워크 탭에서 요청이 실패한 관련 오류를 확인하세요.

방화벽 설정 확인: 방화벽을 사용하고 있다면, 포트 1018이 차단되지 않았는지 확인하세요.

이 단계들을 따라 문제를 진단해 보세요. 문제가 지속된다면, 웹 서버와 애플리케이션의 설정 파일을 확인하여 올바르게 설정되어 있는지 확인해야 할 수도 있습니다.

 

크롬 설정 창에 들어가서 세이프 브라우징을 해제해줍니다.

 

 

그래도 안돼서 더 알아봅니다.

 

 

 

다시 새로고침... 

 

 

드디어ㅠㅠ 드디어 됐다!!!!!!!!!!!!!!