docker 포스팅을 미루고 미루다가 이제야 올린다~
주로 쓰는 간단한 명령어들을 알아보자~
먼저 docker와 docker-compose 설치가 되어 있어야 한다
리눅스 (ubuntu) 도커 설치 보러가기 -포스팅 예정:링크수정 해야함
먼저 터미널을 열고 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 명령어에 대해서 더 알고 싶을 때는 터미널에 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 이미지를 보여준다
사진에 보이는 IMAGE ID가 300e315adb2f 이다비슷한 명령어로는 docker images 가 있는 다운로드 받은 이미지를 다 보여준다
이제 다운받은 이미지를 바탕으로 도커를 실제로 실행을 시켜보자
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만 치게되면 실행중인 컨테이너만 보여준다
위에서 docker 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 로 보이는데 이걸로 접속을 하면 된다 (복사를 해서 사용)조금 장황했는데 ㅠㅠ 어쨋든 exec 라는 명령어를 사용해 보자
$ docker exec -it 0c4472e9332d /bin/bash
또는
$ docker exec -it inspiring_banzia /bin/bash
또는
$ docker exec -it mycentos /bin/bash
다 같은 컨테이너의 bash셀을 열 수가 있게 된다.
run 과 사용법이 매우 비슷하다~run 명령어의 --name 옵션을 설명하다보니 너무 복잡해진 것 같다..ㅠㅠ
한번 정해놓은면 편할 수 있는 옵션이라서 소개해보았다~
어쨋든 컨테이너의 bash만 실행해주면 되니 어떤 방법이든 사용해보자.
그러면 다시 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 [이미지아이디]
이로써 다 지워졌다.
끝! 😝