1117 TIL

looggi·2022년 11월 17일
1

스파르타 내배캠 AI-3

목록 보기
69/130

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

  1. 해당 이미지로 컨테이너를 만들고, 아래의 실습을 진행해주세요.
    sudo docker run -it 167c8e96fc57 bash ➜ 167은 이미지 id
    ✔️ bash 대신 /bin/bash 해도 되는지 ⭕
    bash는 os에 명령어를 입력할 수 있도록 shell을 켜주는
    ✔️ run 대신 start 후 exec해도 되는지❌ 동작이 없는 이미지면 생성과 동시에 컨테이너로 진입해줘야 종료가 안됨 /스타트는 컴포즈로 만들때 하는거 아닌가?⭕
  • sparta 디렉터리 아래 second 디렉터리 아래 morning 디렉터리로 이동해주세요. (cd로 이동)
    cd sparta/second/morning/
  • encrypt라는 파일과 decrypt라는 파일이 있습니다. ./encrypt 명령어로 encrypt 파일을 실행해주세요.
    ./encrypt
  • 영어로, 공백 없이 본인의 이름을 입력해주세요.
    Enter your name in ENGLISH with NO BLANK: PARKHYOJINSubmit this string: RCTMJ[QLKP
  • 제대로 된 정답인지 확인해보려면 decrypt 파일을 실행해보면 됩니다.
    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로 할 수 있는 방법이 없음

profile
looooggi

0개의 댓글