보라코딩
Day9, 도커 설치, 명령어 + 참고자료 본문
- 도커 : 데이터 또는 프로그램을 격리시키는 기능 ( 물리적 환경의 차이, 서버 구성의 차이를 무시 가능)
- 서버 :서비스를 제공하는 것
- 리눅스 운영체제 위에 도커 엔진이 작동하고 그 위에 컨테이너가 동작
- 운영체제가 하는 일 : 소프트웨어나 프로그램의 명령을 하드웨어에 전달하는 역할
- 컨테이너의 생애주기 : 컨테이너 만들고 -> 실행하고 -> 종료하고 -> 폐기하는 과정
- 도커의 핵심 : 환경을 격리할 수 있다
ㄴ 독립된 환경에서 이미지를 만들 수 있으며 컨테이너에 커널을 포함하지 않아도 된다!
- 도커의 장점
ㄴ 한 대의 물리 서버에 여러 대의 서버를 띄울 수 있다
ㄴ 서버 관리가 용이하다
ㄴ 서버를 잘 몰라도 다루기 쉽다.
- 도커의 단점
ㄴ 리눅스용 소프트웨어만 지원한다
ㄴ 호스트 서버에 문제가 생기면 모든 컨테이너에 영향을 미친다
- 도커의 주 용도
ㄴ 팀원 모두에게 동일한 개발환경 제공 (동일한 환경 여러개 만들 수 있음)
ㄴ 격리된 환경을 이용한 새로운 버전의 테스트
ㄴ 동일한 서버가 여러 대 필요한 경우에 컨테이너를 이용해서 한 대의 물리 서버에 똑같은 서버 여러개 만들 수 있음(비용 절약)
Docker ?
- 컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼
- 독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술
Docker vs VM
- VM : 운영체제 위에 운영체제를 깔고 그 위에 프로그램을 실행
- Docker : 라이브러리와 실행파일만 존재 (운영체제는 하나)
도커 설치
- 제어판 - 프로그램 및 기능 - 윈도우 기능 켜기/끄기
- Linux용 Windows 하위 시스템, 가상 머신 플랫폼 기능 체크
- 관리자모드로 파워쉘 열고 명령어 입력
- wsl --install
- wsl --set-default-version 2
- Microsoft Store에서 Ubuntu 22.04 LTS 버전을 설치
- microsoft 설치 링크
- 설치 후, 이름과 비밀번호 설정
- $ sudo apt-get update
- $ sudo apt-get upgrade
- 터미널에서 확인
- 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
- 도커허브에서 httpd 검색_hub.docker
- 도커 명령어 보는 곳_docs.docker
- CLI 명령어
docker pull httpd
: 도커 이미지 pulldocker images httpd
: 이미지 다운 여부 확인
- GUI로 실행하기
- 도커 아이콘 오른쪽 마우스 - dashboard - image 클릭
컨테이너 run
- GUI
- dashboard에서 pull한 httpd 옆에 run을 클릭
- httpd : 아파치 하이퍼텍스트 전송 프로토콜 서버
- stop 누르면 컨테이너가 꺼짐
- 컨테이너 필요 없으면 delete
- dashboard에서 pull한 httpd 옆에 run을 클릭
- CLI
docker run httpd
: run 시키기docker run --name webservice2
: 이름 붙여서 run 시키기docker ps
: 생성한 컨테이너 정보 확인docker ps -a
: stop한 컨테이너 정보까지 확인docker stop webservice2
: 컨테이너 stopdocker 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 |