[Docker] 도커

김동욱·2023년 8월 23일
0

Docker

목록 보기
1/1

1. 도커란?

애플리케이션을 만들기 위해선 웹서버, 데이터베이스 .. 등등 많은 것들이 필요합니다.
하지만 한 개의 OS안에 모든 것을 설치하기엔 부담이 많죠
그래서 웹서버용 컴퓨터, 데이터베이스용 컴퓨터를 만들어서 사용하면 많은 비용이 발생하고 가상 컴퓨터를 만들어서 사용하면(vmware, virtualbox) 운영체제 위에 운영체제를 설치하기 때문에 무겁고 부담스럽습니다.

그래서 운영체제 위에 격리된 공간을 마련해서 각각의 애플리케이션을 실행하기 위해 필요한 라이브러리와 bin 등등만을 설치해서 사용하게 됐고 이를 container라고 합니다.

이러한 방식의 소프트웨어 중 가장 유명한 방식이 Docker입니다.

2. 도커 설치

도커는 리눅스 OS 기술이기 때문에
윈도우 컴퓨터에 설치하려면 윈도우 위에 리눅스를 설치하고 그 위에서 컨테이너를 관리해야합니다. 그래서 성능이 떨어지는 건 어쩔 수 없어요.

도커를 설치하기 위해 docker docs 를 들어가서

해당 운영체제에 맞게 설치하면 됩니다.

3. 이미지 pull

우리가 app store나 market에서 program을 다운받고 실제로 process가 작동하듯,
도커도 docker hub에서 image를 다운받고 실제로 container가 작동하게 됩니다.
여기서 image를 다운받는 행위를 pull이라고 하고 container를 실행시키는 행위를 run이라고 합니다.

그러면 실제로 image를 다운받기 전 docker 문서에 들어가서 어떻게 image를 다운받는지 알아봅시다.
docs.docker.com reference-> Command-line refernece -> docker cli 에 들어가면
각종 docker 명령어를 확인할 수 있습니다.

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

httpd

hub.docker.com에 접속합니다.
httpd 검색해보면 docker pull httpd 명령어로 다운받을 수 있음을 알 수 있습니다.

컨테이너 run

docker run [OPTIONS] IMAGE [COMMAND] [ARG...

command에는 컨테이너 안에서 실행하고 싶은 명령을 입력할 수 있습니다.

ws1이름의 httpd 컨테이너 생성

docker run --name ws1 httpd

ws2이름의 httpd 컨테이너 생성

docker run ---namews2 httpd

실행중인 컨테이너 확인

docker ps

컨테이너 정지

docker stop ws2

컨테이너 삭제 (컨테이너 정지 후 가능)

docker rm  ws2

네트워크


웹서버를 사용하기 위해 2대의 컴퓨터가 필요합니다.
web browser과 web server
브라우저가 웹 서버에게 지정된 포트번호 80을 통해 index.html을 요청하면 웹 서버는 파일을 찾아서 제공해줍니다.

이를 docker를 통해 구현하면 docker host와 docker container 공간으로 사용하게 됩니다.

브라우저는 웹서버에게 이전처럼 직접 요청할 수 없고 docker host를 거쳐 가야하기 때문에
포트번호 80을 거쳐 컨테이너 포트번호 80을 거쳐서 웹 서버에 도달하게 됩니다.
이를 포트 포워딩이라고 하며

$ docker run -p 80:80 httpd

처럼 표현할 수 있습니다.
만약 host 포트번호가 8080으로 변경된다면 명령어는 다음과 같습니다.

$ docker run -p 8080:80 httpd

실제로 접속되는지 확인해봅시다.

localhost:8080

.. 접속이 안되는 이유를 찾아보기 위해
방화벽도 바꿔보고 네트워크도 확인하고 포트번호도 바꿔보고
겹치는 포트가 있나 확인해보고..
했는데
도커 업데이트 하니까 됐습니다.
재부팅과 업데이트는 꾸준히 하자

명령어 실행

컨테이너를 수정하는 방법
컨테이너에서 각종 명령어를 수행하려면 desktop docker에서 해당 컨테이너에 터미널을 찾아 들어가도 되지만 명령어를 통해서도 접속 가능하다

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

명령 프롬포트에서 docker exec ws2 pwd 를 입력하면 ws2의 pwd 정보가 나오게 됩니다.
마찬가지로 docker exec ws2 ls를 입력하면 ws2의 파일들이 나옵니다.
여기서 컨테이너 ws2 내부에 계속 접속해있고 싶으면

docker exec -it ws2 /bin/sh

컨테이너 ws2의 대화형 셀을 시작하는 명령어입니다.

연결을 끊고 싶으면

exit

를 입력하면 됩니다.

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

docker run -p 8888:80 -v ~\DEV\Docker:/usr/local/apache2/htdocs/ httpd


강의 생활코딩 도커

profile
안녕하세요. 공부해요

0개의 댓글