12/23 금 도커_마무리와_협업준비

김하은·2022년 12월 25일
0
post-thumbnail

AWS의 EC2로 접속

EC2
-> 인스턴스 실행중(running) 클릭
-> 인스턴스 아이디 클릭
-> Connect(연결) 클릭

포그라운드로 띄우지 않고 벡그라운드로 실행시키기!

EC2에 도커 설치

먼저 설치전에 설치 도구 업데이트가 필요하다. 지금 아마존 리눅스 쉘을 사용하니 yum 이라는 도구를 업데이트

sudo yum update

sudo yun install docker
y

이후 잘 설치 되었다면, docker --version 하면 설치된 도커의 버전이 나온다.

클릭으로 이전에 설치 했던방법은 Graphic User Interface 로 GUI형식이라호 사용자 입장의 인터페이스라 불리는 것이다.

추가적인기능들(도커 + 도커컴포즈+..) 이 많이 들어있어 시간이 오래걸렸다.

터미널에서는 간단하게 두개 docker와 docker-compose를 받으니 그다지 오래걸리지 않는다.

아마존 리눅스에서 docker-compose설치하기를 검색하면 나온다.
수업자료에 나와았는 명령어를 사용해 설치 했다. 그런데 안되는 부분도 있어 검색해가며 적용했다.

docker-compose설치하기

sudo curl -L "https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-$(uname -s)-$(uname -m)"  -o /usr/local/bin/docker-compose

sudo chmod +x /usr/bin/docker-compose  => 실행 권한주기
sudo mv /usr/local/bin/docker-compose /usr/bin/docker-compose
=> 해당 폴더로 이동

원래 수업에선 ln으로 바로가기를 만들어주었는데 이상하게 계속 안되어 mv 로 입력하였다.
지금 다시보니 제공해주신 명령어가 잘못되어있는것 같다.

sudo ln -s /ust/local/bin/docker-compose /usr/bin/docker-compose

이부분에서 ust가 아니라 usr이어야했다. 왜 이걸 이제 발견했지...?

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

이 명령어가 맞는것!.
이제서야 발견해서...하...

왜 명령어가 안되는지 하다가 mv로 바꿔서 진행하였기에... 나중에 추가해보도록 한다.

이다음

docker-compose --version

하면 설치가 제대로 되었다면 버전이 나옴을 확인할 수 있다.

도커실행

sudo system status docker

설치한 도커가 실행중인지 확인하는 명령어.
inactive라고 뜨면 아직 실행중이 아니라는 말

sudo systemctl start docker


여기서 한가지 팁을 알려주신게
만약 명령어를 잊었을 경우 무언가의 뒤에 올 명령어를 잊었을경우에 먼저 검색을 진행하는것이 아니라, --help 명령어를 먼저 활용해 보는 것이 좋다고하셨다.

만약 sudo systemctl 이뒤에 명령어가 기억나지 않는다면,

sudo systemctl --help

이런식으로 활용하라는 것이다.


다시 돌아가,

start후에

sudo systemctl status docker
로 보면 지금은 active로 초록색으로 나오는것을 볼 수 있다.

rm은 컨테이너 삭제(컴퓨터 삭제)
rmi는 build해놓은 이미지 삭제

지금 실행되고 있는 컴퓨터보기

docker ps

permission denined뜨면 앞에 sudo붙여서 진헹.

sudo docker ps

폴더로 가서 git pull origin master 로 도커세팅 파일까지 새로 업로드 되었으니 다시 받아오는 명령어다.

sudo docker-compose build

원래 이후에 sudo docker-compose up으로 실행시키나,
지금은 벡그라운드에서 실행해야 되기에

sudo docker-compose up -d

이렇게 벡그라운드에서 실행되게하고,

눈에는 실행여부가 보이지 않는다. 이럴때는 log라는것을 사용한다.

sudo docker-compose logs -f

해당명령어는 yaml파일이 있는곳에서 진행해야한다.

잘 실행되고있음을 확인하면 이제 터미널을 꺼도 동작이 되는지 확인해본다.

터미널을 끈다고 백그라운드에서 실행되고 있는 도커가 꺼지는 것이 아님을 알 수 있다.

해당실습 진행중에 설치 부분은 어떻게 해결해 넘어갔어도 build시에 device에 공간이 없다고떴다.

계속 빌드가 안되니 수업을 보기만 하는 수밖에 없었다.

질문을 올렸더니 해당 명령어는 용량이 부족하다는 문제가 생겼다. 해서 EC2의 볼륨을 30기가로 올렸다.
(프리티어에서는 일단 30기가까지는 무료라고해서 최대로 올리고, 터미널에서도 해당설정을 적용해주어야한다고해서 진행했다. )그다음 build를 진행했는데 계속 용량부족!!

대체 어디가 문제인지 검색을해서 기존 이미지들도 지워보고 안되겠어서 질문을 올려봤다.

내가 찾아봤던 방법을 알려주셔서 일단 다시 시도해조고, 권한도 다시 주어봤다..

그런데 이상하게도 계속 안되는것이었다

해당 docker의 루트 폴더도 바꾸어보았다.
docker system prune -a --volumes

해당명령어로 볼륨을 지워보기도 했다.

그런데 여전히 같은문제가 발생!

그런데 멘토님한분이 df -Th 라는 명령어를 쳐보라고 하셨다.

디스크 용량을 확인하는 명령어인데, 해당 디스크 타입까지 나온다.

내가보기에는 별 문제 없는듯 했으나! 다른 분이 지금 용량이 할당이 안되있다고 여전히 기본용량으로 되어있다는 것이었다!!

그래서 다시 확인해보니
진짜 내가 용량증설을하여 lsblk 라는명령어를 사용해 적용한것을 보니 아래쪽에 포트로 들어간 이름이 내가 증설한 이름이고 해당 부분이 적용되었어야 했다.

이상하다? 분명 적용을 했는데 왜 8기가지?

찾아보니까 타입이 xfs면 명령어가 resize가 아니라 다른명령어로 들어가야하는데 resize라는 명령어로
했기에 반영이 안된것이었다.

실제로 내가 처음 블로그에 들어가 본것에는 이거면 이거를 쓰고 저거면 다른 명령어를 사용해라. 였기에 이걸 어떻게 본거지? 에서 막히면서 그냥 resize를 썼던것이 문제였던것 같다.

resize부분대신
xfs_growfs 라는것을 바꾸어 적용해주었더니 해결되었다

xfs_growfs /dev/xvda1


백그라운드 실행까지 진행하면 log로 접속 로그를 볼 수 있다.

그렇게 로그가 나오고,
완전히 끄고 싶다면 docker ps로 현재 작동되고 있는 컴퓨터를 보고 docker-compose stop 을 하면 해당 컴퓨터가 ps에서 사라지는것을 확인할 수 있다.

docker-compose stop 해당 컨테이너 이름(컴퓨터 이름)
docker-compose start 해당 컨테이너 이름( 컴퓨터 이름)

이렇게 작성하면 해당 컨테이너(컴퓨터)만 중지하고, 시작하고 를 할 수 있다.

포그라운드 즉, 눈에 터미널에서 시작되는것이 보였을 때는 컨트롤+c를 하여 터미널을 종료하고,
이번에는 도커을 사용해 백그라운드에서 실행되도록 하였으니 docker-compose stop 이라는 명령어가 필요한 것이다.

docker-compose stop 이라고 하면 500 Interval Server Error가 나온다.즉, 백그라운드에서 실행시켜 나오고 있었는데, 해당 명령어로 종료가 되어 나오지 않는것이다.


0개의 댓글