본문 바로가기
docker

1. Docker란?

by 장인이 2021. 1. 9.

개요

  이번 게시물에서는 네트워크 설정과 웹에서 강력한 기능을 발휘할 수 있는 docker에 대해 간략하게 설명하겠습니다.

 

목차

1. docker란?

2. docker hub과 이미지

3. 간단한 웹 서버 만들어 보기

 

1. docker란?

 

<doker>

  Microsoft 공식 사이트에 따르면, "Docker는 클라우드 또는 온-프레미스로 실행될 수 있는 이식 가능하고 문제를 스스로 해결할 수 있는 컨테이너로서 애플리케이션 배포를 자동화하기 위한 오픈 소스 프로젝트입니다"라고 서술되어 있습니다.

 

2. docker hub과 이미지

  git은 오픈 커뮤니티로 github과 gitlab가 있듯이, docker는 오픈 커뮤니티로 docker hub를 꼽을 수 있습니다. Docker hub는 docker에서 핵심적인 여러 설정들의 이미지를 받을 수 있습니다.

  docker에서 이미지는 작업환경의 세팅 값을 복사할 수 있는 능력을 가졌으며, 더 나아가서 세팅 뿐만 아니라 안에 들어있는 코드들도 복사해서 가져갈 수 있는 기능을 가졌습니다. 이번에 실습할 때는 nginx라는 이미지를 사용할 것입니다.

 

3. 간단한 웹 서버 만들어 보기

  우선 docker를 설치합니다. mac또는 리눅스 환경인 경우 terminal에서 진행해 주면 되며, window의 경우에는 windows powershell에서 진행해 주면 됩니다. 이때 윈도우에서 wsl2를 설치한다면, 윈도우 powershell에서도 리눅스 명령어를 사용할 수 있게 됩니다.

  그럼 docker 버전확인 부터 시작하여 간단한 웹 서버를 만들어보는 명령어에 대해 서술하겠습니다.

 

docker -v

: 버전 확인

 

docker pull nglnx

: nglnx 이미지 다운

 

docker ps

: 실행중인 컨테이너 목록

 

docker ps -a

: 전체 컨테이너 목록

 

docker run -it -d -p 80:80 --name test ae2feff98a0c[image id]

: -p는 앞이 로컬 컴퓨터에서 열을 포트, 뒤는 도커 포트 번호임 (포트 포워딩)

: 이리 하게 되면 밖에서 앞에 작성한 포트로 접속할 경우, 도커로 접속할 수 있게 됩니다.

+ docker run -it -d -p 8080:80 nginx 이렇게도 해도 됨!

: why? 1. 다운받아놨으면 자동으로 nginx id를 찾아줍니다.

         2. 없어도 유명한 것들은 자동으로 검색한 후 다운받아서 사용가능 합니다.

 

  완료되면 127.0.0.1:80 (본인이 연 포트) 웹페이지에 입력해보면 Welcome to nginx! 이라는 환영 문구가 나옵니다.

 

docker exec

: 컨테이너 내부에 명령어를 실행시켜 준다

 

docker exec -it [컨테이너 id] /bin/bash

: 실제로 접속

 

  이제부터 리눅스 환경으로 usr/share/nginx/html으로 이동합니다(ls, cd 활용). 안에 index.html이 있는데, 로컬로 편집한 html으로 교체하면 화면 변경이 가능합니다. 참고로 컨테이너 혹은 이미지 id는 모두 이름으로 대체 가능합니다.

 

1. rm index.html로 기존의 index.html 삭제

2. exit으로 빠져나오기

3. docker cp [바꿀 index.html 있는 폴더 주소]/index.html [컨테이너id]:[아까 user/share/nginx/html]

하면 index.html(내가 작성한) 것이 들어가게 됨

4. 확인하려면 아까 주소 다시 접속

 

  이렇게 간단하게 웹서버를 만들 수 있습니다. 또한 앞에서 언급했듯이 docker는 나만의 container를 이미지로 저장해서 배포할 수 있습니다.

 

1. exit으로 나가기

2. docker stop [컨테이너 id]로 컨테이너 멈추기

2-1. 확인하려면 docker ps

2-2. 살리고 싶으면 docker start [컨테이너 id]

: 이것이 도커의 장점! db서버, 사이트 서버 등 여러 서버를 만들 경우 원하는 서버를 마음대로 껏다 킬 수 있습니다.

3. docker export -o [export할 이미지 이름].tar [컨테이너 id]

4. 이미지 다시 가져오려면 import [아까 export한 파일 이름].tar [컨테이너 id]

4-1. docker images로 확인

5. docker rm [컨테이너 id]: 기존에 만들었던 컨테이너 지우기

6. 앞에서 한것처럼 run하기(이미지 id만 바꿔서)

댓글