Amazon Linux 2023 EC2 서버에 도커를 설치하고 자동 재실행 설정하는 절차는 다음과 같다.
1. Amazon Linux 2023 EC2 서버에 도커 설치 및 서비스로 자동 재실행 설정
도커 설치
- EC2 인스턴스에 SSH 접속한다.
- ssh -i <your-key-pair.pem> ec2-user@your-ec2-instance-public-dns
- 도커를 설치한다.
- sudo yum update -y sudo yum install docker -y
- 도커 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정한다.
- sudo systemctl start docker sudo systemctl enable docker
- 도커가 정상적으로 설치되었는지 확인한다.
- docker --version
도커 자동 재실행 설정
- 도커 서비스가 재부팅 시 자동으로 재실행되도록 설정한다.
- sudo systemctl enable docker
- 컨테이너가 재부팅 시 자동 재시작되도록 Dockerfile 또는 docker run 명령어에 --restart 옵션을 추가한다.
- docker run -d --restart unless-stopped <image-name>
2. Docker Compose 설치
Docker Comopose 설치
- Docker Compose 바이너리를 다운로드한다.
- sudo curl -SL "<https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$>(uname -m)" -o /usr/local/bin/docker-compose
- 바이너리에 실행 권한을 부여한다.
- sudo chmod +x /usr/local/bin/docker-compose
- 심볼릭 링크를 생성하여 Docker Compose 명령어를 사용할 수 있도록 한다.
- sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- Docker Compose가 정상적으로 설치되었는지 확인한다.
- docker-compose --version
Docker Compose 서비스 자동 재시작 설정
- docker-compose.yml 파일에 restart 정책을 추가하여 컨테이너가 자동으로 재시작되도록 설정한다. 설정 샘플:
- version: '3' services: web: image: nginx ports: - "80:80" restart: unless-stopped
- Docker-compose 실행
- docker-compose up -d
3. Docker 재설치
docker.service가 의존하는 다른 서비스가 실패하거나 알 수 없는 이유로 Docker 서비스를 시작할 수 없는 경우, Docker를 제거하고 다시 설치하는 것도 하나의 방법이다.
- Docker 제거
- sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
- 위의 도커 설치 참고하여 재설치
<aside> 💡 의존성 확인 및 문제 해결
docker.service의 의존성을 확인하여 관련된 서비스들이 모두 제대로 작동하는지 확인한다.
sudo systemctl list-dependencies docker.service
- 원인 확인
journalctl -xe 명령어를 사용하여 자세한 오류 메시지를 확인한다.
sudo journalctl -xe
이 명령어는 최근 시스템 로그를 표시하여 Docker 서비스가 왜 실패했는지에 대한 더 구체적인 정보를 제공한다.
- Docker 서비스의 상태를 확인한다.
sudo systemctl status docker
- Docker가 의존하는 서비스 중 주로 containerd 서비스가 문제일 수 있다.
containerd 서비스 상태 확인 및 재시작
sudo systemctl status containerd
sudo systemctl restart containerd
이후 Docker 서비스를 다시 시작해본다.
sudo systemctl start docker
</aside>
4. Docker Compose 삭제
현재 설치된 방식에 따라 삭제 방법이 다를 수 있으니, 해당하는 방법을 따라 진행하면 된다.
- Docker Compose 바이너리 삭제 (직접 다운로드한 경우)
또는 Docker Compose가 다른 경로에 설치되어 있는 경우, 설치된 경로에서 파일을 삭제하면 된다.sudo rm /usr/local/bin/docker-compose
- sudo rm /usr/bin/docker-compose
- 만약 Docker Compose를 직접 바이너리 파일로 설치했다면, 아래 명령어를 통해 파일을 삭제할 수 있다.
- 패키지 관리자를 통한 삭제 (패키지 관리자로 설치한 경우)예를 들어, pip을 사용해 설치한 경우:
- pip uninstall docker-compose
- 만약 Docker Compose를 패키지 관리자를 통해 설치한 경우, 해당 패키지를 제거하면 된다.
- 설치된 위치 확인
출력된 경로를 확인하고 해당 파일을 삭제하면 된다.which docker-compose
- sudo rm /경로/도커-compose
- 설치된 위치를 모르는 경우, 다음 명령어로 Docker Compose의 설치 경로를 확인한 후 해당 파일을 삭제한다.
요약
- 직접 설치한 경우: sudo rm /usr/local/bin/docker-compose 또는 해당 경로에서 파일 삭제
- 패키지 관리자로 설치한 경우: pip uninstall docker-compose
- 설치된 위치를 모르는 경우: which docker-compose로 경로 확인 후 삭제
https://aube1225.blogspot.com/2024/08/ec2-docker-docker-compose.html