docker 튜토리얼 도커 기본 사용법 익혀보기~

By qsp , Created on 11th Jun 2021

docker 포스팅을 미루고 미루다가 이제야 올린다~
주로 쓰는 간단한 명령어들을 알아보자~

도커 docker 기본 튜토리얼 사용해보기

먼저 docker와 docker-compose 설치가 되어 있어야 한다

리눅스 (ubuntu) 도커 설치 보러가기 -포스팅 예정:링크수정 해야함

도커 공식 centos 이미지 살펴보기

먼저 터미널을 열고 docker 버전을 확인해 보자

[octa@localhost ~]$ docker --version
Docker version 20.10.6, build 370c289

이번에는 터미널에

$ docker

만 입력해보자. 그러면 아래와 같은 안내가 나오는데

Usage:  docker [OPTIONS] COMMAND
... 이하 생략
...

도커는 docker 로 시작하고 옵션은 생략이 가능하고 그 이후에 명령어를 입력하는 방식인 것을 알 수 있다

그래서 명령어 예를 들면 docker pull ... , docker image ..., docker ps...
이런식으로 명령어를 입력할 수 있다.


pull 로 도커 이미지 다운받기

먼저 처음으로 명령어 pull을 해보자

깃허브를 경험해본 사람이라면 익숙할 그 pull이다. 도커 허브란 곳에서 도커 이미지를 다운받아 오는 것이다

참고로 pull 명령어에 대해서 더 알고 싶을 때는 터미널에 docker pull --help 라고 쳐보자 그러면 pull 명령어 사용방법 및 옵션등을 알 수 있다

먼저 CentOS 도커 이미지를 받아보자.

이미지 방식은 다음 처럼 된다

이미지이름[:버전 또는 키워드]

예를 들어서 우분투는 18.04, 20.04 이런식으로 버전이 나오지만 centos는 7, 8 이런식이다

아래 처럼 입력해보자

docker pull centos:8

centos:latest 라고 하면 최신 이미지를 다운 받는다
또는 centos 만 하고 뒤에를 생략해도 최신 버전을 다운 받는다

이거는 다른 이미지를 받을 때도 비슷하게 적용이 된다
docker pull ubuntu:18.04 또는 docker pull ubuntu:latest

이제 도커 이미지가 다운이 된다

이제 실제 이미지가 다운이 되었는지 확인을 해보자. 이것도 리눅스 명령어 처럼 사용이 되어서 조금 친숙하다

$ docker image ls

그러면 다운 받은 docker 이미지를 보여준다

비슷한 명령어로는 docker images 가 있는 다운로드 받은 이미지를 다 보여준다

사진에 보이는 IMAGE ID가 300e315adb2f 이다

이제 다운받은 이미지를 바탕으로 도커를 실제로 실행을 시켜보자
run이란 명령어와 옵션을 넣어서 CentOS의 컨테이너를 실행해보자.

명령어는 run 을 사용하는데 run 은 새로운 컨테이너에 명령을 해주는 것이 된다
-it 옵션을 사용해서 아래처럼 입력하자

$ docker run -it centos:8 /bin/bash

-i 옵션은 interactive 이며 표준 입력을 할 수 있게 열어준다
t 옵션은 tty 이며 배쉬셀 같은 것을 띄울 수 있게 해준다

이제 컨데이너가 실행이 되면서 CentOS의 bash 쉘로 들어와 있는 모습을 확인할 수가 있다


나는 처음에는 이 부분이 많이 신기했다~ 현재 우분투 배포반 리눅스에서
이렇게 또 다른 리눅스를 사용할 수 있다니, 이게 다 리눅스 커널을 기반으로 돌아가기 때문에
실행도 빠르게 되는 것 이라고 한다

이제 우분투에서 CentOS 도커 컨테이너로 들어가 있는 것을 볼 수 있다~ 그냥 이건 확인 차원에서 한번 더 해보면

# grep . /etc/*-release
이제 exit로 컨테이너를 빠져나온다

# exit

그리고 우분투로 돌아와서 이번에는 생성된 컨테이너를 확인해 볼 차례이다 이번에는 ps 라는 명령어이다

$ docker ps -a

-a는 모든 컨테이너를 포함해서 보여준다. ps만 치게되면 실행중인 컨테이너만 보여준다


이미지 centos:8을 이용해서 컨테이너ID 84e2c72efad8 컨테이너가 생겼다
(물론 자신의 컴에 있는 ID번호를 입력해줘야한다~ 매번 다름)

위에서 docker run 명령어로 컨테이너를 생성하게 되면 run 명령어를 실행 할 때마다 컨테이너를 만들어 준다


다시 한번 run 명령어를 실행해서 컨테이너를 만들자

$ docker run -it centos:8 /bin/bash

다시 CentOS 컨테이너로 들어왔다~ 이제는 터미널을 새 탭을 열어준다

참고 run 명령어를 주면 컨테이너의 이름이 자동으로 생성이 되는데
과학자 이름인가?로 램덤으로 생성이 되는 것으로 알고 있다 다음에 기억하기 쉬운 이름으로 주고 싶으로 --name 옵션을 넣어보자

예를 들어서..

$ docker run -it --name mycentos centos:8 /bin/bash 

다시 볼론으로 돌아와서
현재 run 으로 실행되고 있는 컨테이너에 다시 접근하려면

exec라는 명령어로 들어 올 수 있다.

평상시 리눅스에서도 터미널 세션을 여러개를 (새탭/새창으로) 띄우고 많이 작업하는데
도커에서도 가능하다.

먼저 실행 중인(run) 도커 컨테이너 id를 확인한다.
(위에서 run 했던 것은 그대로 두고 새로운 터미널 창을 연다)

$ docker ps -a
컨테이너 id가 0c4472e9332d 로 보이는데 이걸로 접속을 하면 된다 (복사를 해서 사용)
그리고 위의 사진을 보면 NAMES 라는 부분이 보이는데 위에서 --name이란 옵션을 넣어서 생성했다면 그 이름을 사용하면 된다
또는 램덤으로 생성되는 NAMES를 써도 된다

조금 장황했는데 ㅠㅠ 어쨋든 exec 라는 명령어를 사용해 보자

$ docker exec -it 0c4472e9332d /bin/bash

또는

$ docker exec -it inspiring_banzia /bin/bash

또는

$ docker exec -it mycentos /bin/bash

다 같은 컨테이너의 bash셀을 열 수가 있게 된다.


run 명령어의 --name 옵션을 설명하다보니 너무 복잡해진 것 같다..ㅠㅠ
한번 정해놓은면 편할 수 있는 옵션이라서 소개해보았다~
어쨋든 컨테이너의 bash만 실행해주면 되니 어떤 방법이든 사용해보자.

run 과 사용법이 매우 비슷하다~

그러면 다시 centos 컨테이너 세션이 새로 열렸고, 플롬프트 앞을 보면 확인할 수 있다.
같은 컨테이너 번호로 확인이 된다

이런식으로 같은 컨테이너로 여러개의 터미널 창을 띄워놓을 수 있다.

이제 exit로 빠져 나온 후 옆의 터미널에 열려있는 (run으로 열려있는 터미널도) exit 를 해주자
그럼 이제 모두 빠져나온 상태가 된다.


이번에는 컨테이너를 삭제를 해보자

먼저 컨테이너 확인!

$ docker ps -a

보이는 컨테이너 ID를 적어줘서 삭제를 할 수 있는데 명령어는 rm 이고 컨테이너id를 적어주면 삭제가 된다
이때 컨테이너 ID는 다 안 써줘도 되고 겹치지 않는 선에서 앞에만 적어줘도 된다

$ docker rm [컨테이너아이디]

아래 스샷 처럼 보이는 컨테이너ID를 차례차례 적어 주면서 지워주자

참고로 run 명령어를 사용할 때 마다 컨테이너가 계속 생성이 된다.
컨테이너 한번 생성하고 지울려고 하면 --rm 이라는 옵션을 넣어준다. 그러면 exit로 빠져나오면 컨테이너가 삭제가 된다.

참고: 컨테이너 실행하면서 지우는 옵션

$ docker run -it --rm centos:8 /bin/bash


처음에 받은 이미지를 지워보자

계속 사용할 것이면 이미지는 지우면 안되지만 이것저것 해보는게 튜토리얼 ㅋㅋ

먼저 다운받은 image의 ID를 알아보자

$ docker image ls

삭제 명령어는 image rm 그리고 [이미지 아이디] 이고 삭제를 해보자~
마찬가지로 id를 다 안적어줘도 된다

$ docker image rm [이미지아이디]
이로써 다 지워졌다.

끝! 😝

댓글

댓글이 없습니다.