데이터센터프로그래밍06(2)

서유리·2022년 3월 25일
0
post-thumbnail

06-Docker Overview

🟢 도커코드 실행

🔹 코드 명령어 & 설명
🟩 docker run hello-world
💚 해석

  • 1번: 도커클라이언트 : 현재 컴퓨터에 설치된 도커 커뮤니티 에디션이 도커클라이언트가 기본이 됨
  • 2번: 이미지를 기반으로 해서 프로그램을 실행하는 것 즉, 도커Daemon을 접촉했는데, 이미지가 없어서 도커허브를 통해 "hello-world"이미지를 pull(가져옴)
  • 3번: 이미지로 부터 새로운 컨테이너를 생성했고, 컨테이너를 실행해서 out-put을 가져옴
  • 4번: 결과가 만들어진 것을 도커클라이언트에 보냄으로 터미널에 글자가 나타나도록 함
  • 만약, 우분투를 실행하고 싶다면?
    : $ docker run -it ubuntu bash
    : -it (interectivemode) 주고받는 역할을 함

🟩 docker run -it ubuntu bash
💚 해석
: docker run -it ubuntu bash (ubuntu 이미지 안에 있는 bash 프로그램을 run을 하는데, interactive module로 해줘~
)
: C:\Users\dkddk>기반으로 로그인을 했는데…
root@34d998259871:/# (*바뀌었네??)
: 우분투를 가져와서 우분트 안으로 들어 간 후, bash라는 프로그램을 실행했으니, 컴퓨터에서 짧은 시간에 우분투를 설치하고 프로그램을 실행한 것임

🟩 uname
🟩 ls
🟩 exit
💚 해석
: 리눅스 운영체제임
: Bash는 ls 파일보기 한 것처럼 shell이라고 부르며, 손으로 명령어를 수행하는 리눅스 프로그램임
ex. uname

🟩 docker image ls
💚 해석
: docker image ls (도커, 이미지 보여줘~)
: hello-world의 이미지 버전은 5개월 전에 만들어졌고, 사이즈는 13.3KB
: Ubuntu의 이미지 버전은 13일 전에 만들어졌고, 사이즈는 72.8MB
🙉 Ubuntu 작은 이유?
-container technology에 있는 Ubuntu는 풀버전이 아님
-필요한 만큼만 가져온 것이므로 굉장히 작음
🙂 프로그램을 짤때, 아래에 있는 운영체제 host os를 사용함 (최소화 시킴)

🟩 ls –al
💚 해석
: ls –al (파일들을 다 보여줘~)

🟩 docker pull ubuntu
💚 해석
: docker pull ubuntu (도커 허브에서 registry에서 우분투 이미지를 Pull(가져옴)
: 도커에서 ubuntu를 실행 할 건데, ubuntu 이미지가 없으므로, registry에서 가져오고 싶을 때, 사용하는 명령이 pull임

🟩 docker container run -it -d --rm --name ubuntuos ubuntu:latest
💚 해석
: docker container run -it -d (도커야, container를 run실행해줘 interactive module이고, daemon이라고 그러는데)
: --rm --name ubuntuos ubuntu:latest (
서버 모듈로 뒤쪽의 백그라운드로 돌아갈 수 있게 해줘~)
🙂 우분투 운영체제의 latest 이미지를 가지고 실행하는 컨테이너는 우분투 os라고 이름을 부를것이고, 작업이 끝나면, 자동으로 지워지는데 백그라운드 모듈이 서버프로세스 처럼 돌아주고 interactive하게 해줘~ + 뒤쪽에서는 우분투 os가 돌고있음

🟩 docker exec –it ubuntuos /bin/bash
💚 해석
: 도커야~ 방금 실행 시킨 ubuntuos 컨테이너 안에 bin 밑에 bash 프로그램을 실행해줘
: 자세한 설명은 다음과 같음
-도커 실행해~ 명령 Execution, interactive module로 ubuntuos 안에 있는 bash를
-ubuntu 들어갔을 때에 디렉토리가 bin 이고 그 밑에 bash 프로그램이 있음

🙉 도커 컨테이너와 이미지를 직접 보고싶다면?
🟩 docker container ls
💚 해석
: 도커야, 지금 실행되고 있는 컨테이너들을 리스트 해줘~

🟩 docker image ls
💚 해석
: 도커야, 현재 가지고 있는 이미지들을 리스트 해줘~
▶ 이미지는 hello-world / ubuntu 등이 있음
▶ 우분투는 최신버전으로, 2b4cba85892a id를 가지고 있고, hello-world도 설치되어 있음

🟩 docker pull python
💚 해석
: 파이썬을 도커허브에서 가져옴

🟩 docker image ls
💚 해석
: 도커야, 이미지는 뭘가지고 잇니?
▶ 파이썬이 있고, 15시간 전에 만들어졌고, 사이즈는 919MB임

🙉 파이썬이 이미지가 있으니, 컨테이너를 띄어본다면?
🟩 docker container run -it -d --rm --name pythonclid python:latest
💚 해석
▶ 도커 컨테이너를 실행해줘 ➡ 손으로 타이핑 하는 interactive module야 / 서버처럼 뒤에 둥둥 떠있으면 좋겠고 ➡ 나중에 임무가 끝나면 자동으로 지워줘 ➡
내가 지금 띄울 파이썬 컨테이너는 (이미지로 부터 컨테이너를 씌운다고 했음) 파이썬 command interface daemon이야 ➡ 실행할 컨테이너를 만들 이미지는 파이썬 (지금 가져온) latest임

🟩 docker container ls
💚 해석
: 도커야, 가지고 있는 컨테이너들의 리스트 보여줘
▶ python3 & bash를 가지고 있음
▶ 이름을 편하게 부르기 위해 pythonclid / ubuntuos 의 name이 있음

🟩 docker exec -it pythonclid /bin/bash
🟩 uname
💚 해석
: 도커야, interactive module로 pythonclid 컨테이너에 bin 밑에 bash를 실행하고 싶어
: pythonclid와 bin 밑에 bash임
▶ 파이썬 이미지, 컨테이너는 리눅스 운영체제가 있고
파이썬이 동작하기 위한 것들을 함께 가지고 있음
▶ 이에 대한 설명은 도커허브에 가서 파이썬을 보면 있는데, infrastructure as code에 의해서 이미 파이썬을 수행하기 위해 편리한 운영체제 환경들을 이미지로 만들어 놓은 것을 가져온 것임
▶ 또한, uname을 작성하면, prompt가 변경됨

🟩 ls –al
💚 해석
▶ 모든 파일들이 보임

🟩 python
💚 해석
▶ 파이썬 버전은 3.10.3이고
▶ 리눅스 위에서 돌아감

▶ 파이썬은 vs코드나 파이참을 사용하지 않으면, 프롬프트 동작에서 사용할 수 있으며, print("Hello world")를 작성하면 interpreter 방식으로 해서 파이썬을 실행 할 수 있음

🙉 설치된 것을 지우려면?
(1) exit()
(2) 컨테이너 개수 & 도커이미지 확인
(3) 컨테이너를 죽이고, 이미지 삭제
🟩 exit()
💚 해석
▶ 리눅스에서 나감 (exit를 사용해 macos환경으로 돌아옴)

🟩 docker container ls (docker ps)
💚 해석
▶ 현재 컨테이너는 2개임 (pythonclid & ubuntuos)

🟩 docker image ls
💚 해석
▶ 도커 이미지는 5개가 있음

🙂 즉, 도커는...
: 운영체제도 순식간에 가지고 와서 실행할 수 있고
: 파이썬도 가지고 와서 실행할 수 있는 것을 볼 수 있음
: 실행 시킬 파이썬 코드를 짰으면, 파이썬 컨테이너를 가지고 온 것에 자신의 것을 넣어서 실행만 하면 됨
: 우분투 운영체제 위에서 돌아가는 프로그램을 가지고 있으면, 우분투 운영체제 위에서 프로그램을 실행만 하면 됨
: 직접 짠 파이썬 프로그램과 실행 시킬 우분투 운영체제를 이미지 위에 추가로 넣어서 배포 할 수 있고, pull해서 띄울 수도 있으므로, 매우 편리한 환경임
🙂 따라서 도커를 사용함으로써 필요한 환경을 set up하고 Ubuntu, Python, Hello-world 등 다양하기 대문에
실수를 하면 실수한 만큼 늘어남 ➡ 지우는 방법이 중요함

🔴 지울때는~
🟥 docker container stop pythonclid
▶ docker야 container를 stop해줘 이름은 pythonclid야
🟥 docker container ls
▶ 잘 지워졌는지 확인

  • stop : 지운다는 의미보단, 멈추라는 의미

🟥 docker container stop ubuntuos
▶ docker야 container를 stop해줘 이름은 ubuntuos야
🟥 docker container ls
▶ 잘 지워졌는지 확인

🟥 docker image ls
▶ 이미지는 5개임

🟥 docker image rm -f 2b4cba85892a
▶ 이미지를 리눅스에서 지우는 것은 rm임 (remove)
▶ 강제옵션 –f
▶ 지울 이미지 ubuntu인데, 이미지 id를 쓰는게 더 좋음 (2b4cba85892a)

🟥 docker image ls
▶ 잘 지워졌는지 확인
▶ 결과) Ubuntu가 없어짐

🟥 docker image rm -f 33ceb4320f06
▶ 결과) 파이썬도 없어짐

🟥 docker image rm -f feb5d9fea6a5
▶ 결과) image hello-world도 없어짐

🟥 docker image ls
🟥 docker container ls
▶ 결과) 이미지가 없다는 것 = 컨테이너도 없다는 의미

🚩 정리

  • 운영체제도 가져왔고,
  • 운영체제 밑에 깔은 언어 환경도 가져와서 설치 및 삭제함
profile
best of best

0개의 댓글

관련 채용 정보