[ Docker ] 따라하며 배우는 도커와 CI환경 - 2

·2023년 6월 12일
0

Day 2

도커 이미지 내부 파일 구조 보기

docker run 이미지이름 ls

docker : 도커 클라이언트언급
run : 컨테이너 생성 및 실행
이미지 이름 : 이 컨테이너를 위한 이미지
ls : 이 자리는 원래 이미지가 가지고 있는 시작 명령어 무시하고 여기에 있는 커멘드를 실행 / ls 커맨드 현재 디렉토리 파일 리스트표출

컨테이너 나열

docker ps

ps : process status

이미지 설명

  1. CONTAINER ID : 컨테이너 고유 ID 해쉬값, 일부분만 보여줌
  2. IMAGE : 컨테이너 생성시 사용한 도커 이미지
  3. COMMAND : 컨테이너 시작시 실행될 명령어, 대부분 이미지 내장되 있어 별도 설정 X
  4. CREATED : 컨테이너 생성된 시간
  5. STATUS : 컨테이너 상태
    실행중 : UP, 종료 : Exited, 일시정지 : Pause
  6. PORTS : 컨테이너 개방한 포트와 호스트에 연결한 포트
    특별한 설정 하지 않을 경우 출력 안됨
  7. NAMES : 컨테이너 고유 이름
    컨테이너 생성시 --name 옵션으로 이름 설정 안하면 도커 엔진이 임의로 만듬
    id와 마찬가지로 중복 안되고 docker rename 이름 변경 가능
    docker rename original-name changed-name

원하는 항목만 보기

docker ps --format 'table{{.Names}}\table{{.Image}}'

모든 컨테이너 나열

docker ps -a

도커 컨테이너의 생명주기

생명주기

생성(create) -> 시작(start) -> 실행(running) -> 중지(stopped) -> 삭제 (deleted)

docker create <이미지 이름>
docker start <시작할 컨테이너 아이디/이름>
docker run <이미지 이름>
docker stop <중지할 컨테이너 아이디/이름>
docker rm <삭제할 컨테이너 아이디/이름>

Docker Stop vs Docker kill

docker stop은 작업들 어느정도 완료하고(Grace Period) 컨테이너 중지
docker kill 바로 컨테이너 중지

컨테이너 삭제하기

docker rm <아이디/이름>
실행중인 컨테이너 먼저 중지한 후에 삭제 가능

모든 컨테이너 삭제하고 싶으면
docker rm `docker ps -a -q`

이미지 삭제하고 싶으면
docker rmi <이미지 id>

한번에 컨테이너, 이미지, 네트워크 모두 삭제
docker system prune
도커 쓰지 않을때, 모두 정리하고 싶을때 사용해주면 좋음

실행 중인 컨테이너에 명령어 전달

docker exec <컨테이너 아이디>

레디스 이용한 컨테이너 이해

레디스 클라이언트가 레디스 서버가 있는 컨테이너 밖에서 실행하려고 하면
레디스 서버에 접근할 수 없어 레디스 클라이언트를 작동하려 할 때 에러가 발생

-> 레디스 클라이언트도 컨테이너 안에서 실행 시켜야한다.

docker run redis
docker exec -it <컨테이너 id> redis-cil

-it 붙여야 명령어 실행 한 후 계속 명령어 적을 수 있다.

실행중 컨테이너 터미널 생활 즐기기

docker exec -it 컨테이너 id 명령어
계속 입력하면서 해줄 수 없으니
docker exec -it 컨테이너 id 명령어 -> sh

쉘 환경으로 접근 (sh)

이 터미널 환경에서 나오려면 Ctrl + D

출처
https://www.inflearn.com/course/%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B0-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EB%8F%84%EC%BB%A4-ci

0개의 댓글