쥐수의 공부노트

Docker 특강 정리 본문

특강 정리

Docker 특강 정리

쥐수 2022. 7. 28. 16:50
728x90

1. Docker 실습 환경

- https://kodkloud.com/p/docker-labs에 접속

- Enroll 버튼을 선택하여 등록

- https://kodekloud.com/courses/labs-docker-for-the-absolute-beginner-hands-on/  에 접속 ( Docker 실습 URL)

- Start Course 버튼 클릭 시 Hands-On Labs 화면이 나옴

- Hands-On Labs 메뉴에서 Labs:Docker Run Commands 선택 후 나오는 Start Lab 버튼을 클릭 

- 우분투 화면이 나오게 되면 성공

2. Docker 설치

실습에 이용할 KODKLOUD에서는 Docker가 자동으로 설치된 상태. 따라서 참고만 하자

- $ curl -fsSL https://get.docker.com/ | sh

- $ usermod -aG docker $USER ( sudo 없이 docker 사용하기 설정)

 

2-1. Docker 설치 확인

- $ docker version

2-2. Hello World 출력

- $ docker run docker/whalesay cowsay Hello-World!

이와 같이 출력이 되면 성공

 

3. Docker에 파이썬 이미지 다운 ( Pull 상태 )

- $ docker pull python:latest

3-1. 다운로드한 이미지들을 출력 

- $ docker images 

Ropository는 도커 이미지 이름 , tag는 다운로드할 때 : 뒤에 사용한 것

Image Id는 도커 이미지 ID , Created는 다운로드하고 지난 시간 , Size는 이미지 크기

4. Docker run ( run 상태 )

- 이미지를 run 시켜주면 container 형태로 변경해준다. 

- $ docker run [options] [image name] [command] 

option 은 대부분 -it를 사용 ( -i는 interactive mode , -t는 터미널 )

--name xx를 넣어주면 container의 이름이 xx가 된다. ( --name은 container 이름 설정! )

- $ docker run -it --name python3.8 python /bin/bash

- python 이미지를 이용하여 컨테이너 python3.8을 생성 ( 이슈가 생겨 java로 대체 )

컨테이너 내부 진입 시 $ 표시가 아닌 # 표시가 된다. 

 

4-1. 현재 실행 중인 컨테이너 리스트 표시 

새로운 터미널을 만들어 $ docker ps 입력 시 java 이름의 컨테이너 실행 중인 것을 확인

 

4-2. 컨테이너에서 나가기

# ls 후 # exit 하면 나가 짐.

- $ docker ps 하였을 시 java 가 뜨지 않는다. 하지만 이는 컨테이너가 사라진 것이 아닌 중지된 상태 

 

4-3. 중지되어있는 컨테이너까지 모두 출력하기

- $ docker ps -a

5. 컨테이너 다시 실행하기 

전에 docker ps -a로 확인한 container id를 복사하여 

- $ docker start [Container ID] 입력 후 $ docker ps 입력 시 시작된 것을 확인 가능

- $ docker ps를 입력 시 container가 실행 중인 것으로 나오지만 #이 나오지 않는다.

이에 대해선 두 가지 방법이 있다.

- 컨테이너 밖에서 컨테이너 내부 명령을 실행하는 방법 : docker exec

- 컨테이너 내부로 다시 들어가는 이용 (프롬프트 이용) : docker attach

5-1. docker exec 사용

$ docker exec [Container name] ls -la

5-2. docker attach 사용

$ docker attach [Container name] 

이후 # ls -la 입력 시 위와 같은 출력 창

5-3. 컨테이너에서 아래와 같이 mydata 폴더와 docker.txt 파일 생성

- # mkdir mydata

- # cd mydata

- # echo "hello world" > docker.txt

- # more docker.txt

- # ls - la

- # pwd 

위 실습을 하게 되면 컨테이너 내용이 변경이 되었기 때문에 변경된 컨테이너를 새로운 이미지로 저장하여 백업시켜 놓을 수 있다.

-> 'commit' 

6. commit

- $ docker commit [container name] [image name]

이후 docker images를 하게 되면 java라는 이미지 이름으로 생성된다.

 

7. stop / rm

만약 컨테이너를 삭제하려면 rm을 사용하게 된다. 하지만 실행 중인 상태라면 반드시 멈추고 삭제를 하여야 하므로 

stop을 이용하여 컨테이너를 중지하고 rm을 이용해 삭제한다.

 

728x90