yum update -y
yum install -y docker
systemctl enable --now docker
usermod -aG docker ec2-user
usermod -aG docker root
chmod 666 /var/run/docker.sock
yum update -y
yum install -y docker# docker 설치
systemctl enable --now docker #docker 실행 및 백그라운드 실행
usermod -aG docker ec2-user #docker group에 ec2-user 추가
usermod -aG docker root #docker group에 root 추가
chmod 666 /var/run/docker.sock
docker group - 현재 접속중인 사용자에게 권한 주기
/var/run/docker.sock - Docker socket파일은 /var/run/docker.sock에 위치하는데 Docker CLI에 의해 도커 커맨드를 실행하기 위해 사용된다.
도커 실행 및 빌드
docker build -t <docker 리포지토리> . #docker를 ECR 리포지토리에 빌드
docker image build -t (name):(tag) # docker 이미지 추가
docker run -d -p 80:80 <리포지토리> #docker 이미지실행 및 백그라운드 실행
docker run -i -t --name <name> <이미지> #docker 이미지 실행
-p 80:80 - 컨테이너의 80번 포트를 쓸 수 있는 호스트의 포트 중 하나와 연결합니다
docker pull <name> #도커 공식 이미지 저장소에서 <Name> 이미지를 내려 받는다
실행 확인 명령어
systemctl status docker #도커 실행 확인
docker ps #컨테이너 목록
docker ps -a #정지한 컨테이너까지 확인
docker images #docker 이미지 목록
컨테이너,도커 이미지 정지및 삭제
docker stop <컨테이너 ID ps로 확인 가능> #docker stop $(docker ps -a -q) - 모두 정지
docker rm -f <컨테이너 ID ps로 확인 가능> #docker rm `docker ps -a -q` - 모두 삭제
docker rmi -f <도커 이미지> #docker 이미지 삭제 docker rmi $(docker images -a) - 모두 삭제
docker exec -it <컨테이너ID or 컨테이너명> /bin/bash #-it는 표준입출력을 열고 tty를 통해 접속하겠다는 의미입니다
exit #컨테이너를 정지 시킨채로 나온다
(임의 docker file 및 ECR를 짠 상태로 시작한다)
미국 워싱턴 DC 시간대로 설정한다
현재 워싱턴 DC의 시간은 오전 4:35이다
date #date 명령어를 통하여 server의 시간을 확인한다
#!/bin/bash
time=$(date -d "-9 hours" "+%Y.%m.%s.%H.%M.%S")
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin $ACCOUNT_ID.dkr.ecr.ap-northeast-2.amazonaws.com
docker build -t $ECR_name .
docker tag $ECR_name:latest $ACCOUNT_ID.dkr.ecr.ap-northeast-2.amazonaws.com/$ECR_name:$time
docker push $ACCOUNT_ID.dkr.ecr.ap-northeast-2.amazonaws.com/$ECR_name:$time
“-9 hours”는 시간 설정이다
참고 사이트 - https://inpa.tistory.com/entry/LINUX-📚-Date-명령어-사용법-완벽-총정리-포맷
aws 시간 참고 사이트 - https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/logs/AgentReference.html