docker run: 생성과 동시에 시작 vs docker exec: 이미 생성된 컨테이너가 있을 때 시작
sudo apt update
sudo apt install docker.io -y
1. 아래의 이미지를 pull 해주세요
https://hub.docker.com/repository/docker/tegongkang/morningtest
생성한 인스턴스에 ssh 연결
ssh -i C:\Users\hyojine\Documents\mykeypair.pem ubuntu@54.180.106.117
docker pull tegongkang/morningtest:latest
sudo docker run -it 167c8e96fc57 bash
➜ 167은 이미지 idcd sparta/second/morning/
./encrypt
Enter your name in ENGLISH with NO BLANK: PARKHYOJIN
➜Submit this string: RCTMJ[QLKP
cd ..
➜ ./decrypt
✔️ sudo docker run -d -p 80:80 167c8e96fc57
➜ 실행시 80번 포트가 이미 사용중(어제 실습)이라 오류나서
sudo docker compose down
으로 ps했을 때 나오는 컨테이너를 모두 삭제함(stop만 했어도 괜찮았을 것 같은데.. 그리고 사실 포트가 필요 없었음)
✔️ sudo docker run -d 167c8e96fc57
이렇게 하면?
➜ 컨테이너가 생성됨 run이 생성과 동시에 실행된다고 했는데 status는 exited로 나옴 ➜ 이번 퀴즈에서 사용된 이미지가 생성과 동시에 종료돼서 당연한거였음..! running 상태일 수가 없음
✔️ 무튼 그래서 도커 컴포즈로 컨테이너를 만들어서 실행해보려고 vi docker-compose.yml
해서 파일 내용 중 컨테이너 이름, 이미지, 포트 부분 수정해서
sudo docker exec -it e40b121aa2f6 /bin/bash
입력했더니
Error response from daemon: Container e40b121aa2f6f0a9198ce146df3343172d2c1dbbad723024b5f8c2ac47b15ad3 is restarting, wait until the container is running
이렇게 떴다.. restart를 보고서 docker-compose.yml파일에서 restart: always라서 그런게 아닐까? 라는 생각이 들어서(⭕) 지워주고 다시 up했는데 이미 있는 이름이라고 나옴
✔️ compose down은 실행중인 컨테이너를 삭제하는건가? stop한 걸 삭제하는 건 아니라서 이미 저 이름이 사용중이라고 뜬건가? 아닌거같음 첨에 사용하지 않는 상태였던 컨테이너도 싹 다 삭제됐음
✔️ 진짜 기다렸어야됐나?? ❌
✔️ 결국 docker compose로 할 수 있는 방법이 없음