보라코딩

Day9, 도커 설치, 명령어 + 참고자료 본문

개발자가 되었다?

Day9, 도커 설치, 명령어 + 참고자료

new 보라 2023. 8. 28. 15:51

- 도커 : 데이터 또는 프로그램을 격리시키는 기능 ( 물리적 환경의 차이, 서버 구성의 차이를 무시 가능)

 

- 서버 :서비스를 제공하는 것

 

- 리눅스 운영체제 위에 도커 엔진이 작동하고 그 위에 컨테이너가 동작

 

- 운영체제가 하는 일 : 소프트웨어나 프로그램의 명령을 하드웨어에 전달하는 역할

 

- 컨테이너의 생애주기 : 컨테이너 만들고 -> 실행하고 -> 종료하고 -> 폐기하는 과정

 

- 도커의 핵심 : 환경을 격리할 수 있다

ㄴ 독립된 환경에서 이미지를 만들 수 있으며 컨테이너에 커널을 포함하지 않아도 된다!

 

- 도커의 장점

ㄴ 한 대의 물리 서버에 여러 대의 서버를 띄울 수 있다

ㄴ 서버 관리가 용이하다

ㄴ 서버를 잘 몰라도 다루기 쉽다.

 

- 도커의 단점

ㄴ 리눅스용 소프트웨어만 지원한다

ㄴ 호스트 서버에 문제가 생기면 모든 컨테이너에 영향을 미친다

 

- 도커의 주 용도

ㄴ 팀원 모두에게 동일한 개발환경 제공 (동일한 환경 여러개 만들 수 있음)

ㄴ 격리된 환경을 이용한 새로운 버전의 테스트

ㄴ 동일한 서버가 여러 대 필요한 경우에 컨테이너를 이용해서 한 대의 물리 서버에 똑같은 서버 여러개 만들 수 있음(비용 절약)

 

 


Docker ?

  • 컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼
  • 독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술

 

Docker vs VM

  • VM : 운영체제 위에 운영체제를 깔고 그 위에 프로그램을 실행
  • Docker : 라이브러리와 실행파일만 존재 (운영체제는 하나)

 

도커 설치

  1. 제어판 - 프로그램 및 기능 - 윈도우 기능 켜기/끄기
    • Linux용 Windows 하위 시스템, 가상 머신 플랫폼 기능 체크
     
  2. 관리자모드로 파워쉘 열고 명령어 입력
    • wsl --install
    • wsl --set-default-version 2
  3. Microsoft Store에서 Ubuntu 22.04 LTS 버전을 설치
  4. 터미널에서 확인
    • wsl -l -v : 버전 확인
    • (참고, wsl -t Ubuntu : 우분투 종료)
    • (참고, wsl -d Ubuntu : 우분투 실행)

  5. 우분투에서 명령어 실행

  • curl -fsSL https://get.docker.com -o docker-install.sh
  • sudo sh ./docker-install.sh
  • sudo docker ps : 설치 끝나면 확인
  • sudo usermod -aG docker $USER : sudo 없이 사용하기 위해 docker그룹에 사용자 추가

 

집에서 다시 해보니 5번부터 잘 안돼서아래꺼 참고함

 

 

[Docker] Ubuntu 22.04 Docker 설치

Ubuntu 22.04 에 Docker 설치하기

velog.io

 

 

윈도우 WSL에서 Docker 설치하는 방법

윈도우에서는 Docker Desktop을 사용하지 않더라도 WSL 리눅스에 직접 Docker를 설치해서 사용할 수 있습니다. 이 글에서는 WSL 리눅스에 Docker Engine을 직접 설치하고 사용하는 방법을 소개합니다.

www.lainyzine.com

 

image pull

컨테이너 run

  • GUI
    • dashboard에서 pull한 httpd 옆에 run을 클릭
      • httpd : 아파치 하이퍼텍스트 전송 프로토콜 서버
    • stop 누르면 컨테이너가 꺼짐
    • 컨테이너 필요 없으면 delete
  • CLI
    • docker run httpd : run 시키기
    • docker run --name webservice2 : 이름 붙여서 run 시키기
    • docker ps : 생성한 컨테이너 정보 확인
    • docker ps -a : stop한 컨테이너 정보까지 확인
    • docker stop webservice2 : 컨테이너 stop
    • docker logs webservice2 : log 보여줌
    • docker logs -f webservice2 : log 변화 계속 보여줌
    • docker rm webservice2 : 컨테이너 stop한 다음에 remove 해야 함
    • docker rm --force webservice2 : 컨테이너 stop과 remove 동시에 가능
    • docker rmi httpd : 도커 이미지 삭제

네트워크

  • GUI
    • localhost 8080 포트로 들어오면 컨테이너 80 포트로 포워딩 하겠다는 의미
  • CLI
    • docker run --name webservice2 -p 8081:80 httpd : 이름 생성하고 포트정보 넣어주며 run
  • 확인하기
    • http://localhost:8081/index.html : 접속 시 it works 라고 표시됨

명령어 실행

  • GUI 컨테이너 안에 터미널에 입력
    • pwd : 컨테이너 안에서 pwd
    • ls -al : 컨테이너 안에 있는 파일
  • CLI
    • docker exec -it webservice /bin/sh : 이렇게 입력 후 내리는 명령은 모두 webservice 컨테이너에게 내리는 것
    • Create a Dockerfile in your project
      • cd /usr/local/apache2/htdocs/
      • apt update
      • apt install nano
      • nano index.html
      • 내용 수정~
      • ctrl + x -> y -> enter
      • 참조사이트_hub.docker

호스트와 컨테이너의 파일시스템 연결

  • VSC에서 index.html 파일 생성해서 내용 변경
  • ctrl + shift + ` 눌러서 터미널 실행
  • docker run -p 8888:80 -v 현재파일위치:/usr/local/apache2/htdocs/ httpd
    • 내 경우 : docker run -p 8888:80 -v C:\Temp\git_test\test002\htdocs:/usr/local/apache2/htdocs/ httpd 입력

 

 



 

참고사이트

 

 

 

 

 

 

'개발자가 되었다?' 카테고리의 다른 글

Day 11, 도커  (0) 2023.08.30
Day 10, 도커  (0) 2023.08.29
Day 8, Mongo DB  (1) 2023.08.25
대댓글 DB  (0) 2023.08.25
Day 7  (0) 2023.08.24