Docker - 설치 및 실행
DevOps 관련 포스팅
- Git Convention
- Test Code
- Git and github
- 왜 Code Review를 해야 하는가
- Web API
- postgreSQL
- AWS 배포하기(1) - RDS (MySQL)
- AWS 배포하기(2) - Elastic Beanstalk
- Docker 설치 및 실행
이 글은 https://www.youtube.com/playlist?list=PL93mKxaRDidGMzIllhYKx1d6aMg6_5wW3 영상을 정리한 것입니다.
0. 개요

-
커널 부분을 확대해 보면, host 운영체제인 windows의 cmd창으로 명령어를 입력하면 docker server가 container에 명령을 하는 형식으로 작동
-
container:image가 실행되어(=메모리에 올라감)instance가 된 상태를 이름
1. Docker 데스크탑 버전 설치(windows)
-
https://www.docker.com/products/docker-desktop/ 접속


-
바탕화면에서 Docker Desktop 실행

-
명령어 복사 후
cmd에서 실행

-
현재 실행 중인 컨테이너 확인

-
브라우저에
localhost입력해 첫 화면 확인
-
docker images명령어로 이미지 확인
-
회원 가입 및 로그인

2. Docker image 다운로드
-
docker hub에서 다운 받을image검색
-
최신 버전을 받으려면 바로 보이는 명령어를 복사해 입력하고,특정 버전을 다운로드하려면Tags를 클릭

-
cmd에서 명령어 입력

-
cmd에서 명령어 입력
-
- 다운받은
image확인$ docker images
image삭제# image 이름으로 삭제 $ docker rmi ubuntu # image ID(앞부분만 입력해도 됨)로 삭제 $ docker rmi b89f
3. Daemon process로 실행
-
docker pull openjdk실행으로openjdk이미지 다운로드 후docker run으로 실행하면 실행 중인 컨테이너(docker ps)에 없음

openjdk는daemon이 아니므로 container가 실행 후 바로 종료됨
-
-d옵션으로 백그라운드 실행
4. 포트 포워딩(port forwarding)
-
Host OS(Windows)에
nginx와apache를 포트포워딩한 형태
-
Host OS(Windows)에
nginx(Linux)와apache(Linux)를 포트포워딩한 형태
→ 여러 운영체제를 이용하는 형태
docker pull httpd실행으로httpd이미지 다운로드httpd의d는daemon process의d를 의미함


-
docker run -d httpd으로httpd이미지 실행
브라우저에서
localhost:8080으로 접속 불가
- docker container는 host os와 다른 네트워크 구성을 가지므로
포트포워딩의 과정이 필요함
- docker container는 host os와 다른 네트워크 구성을 가지므로
-
image를 실행(
run)할 때-p옵션을 부여해줌
- 브라우저에서
localhost:8080으로 접속 가능
- 브라우저에서
5. docker run
docker run명령어로 이미지 다운로드(pull)와 실행(run)을 동시에 진행- 이미지 다운로드(
pull)와 실행(run)을 동시에 실행 가능 - 다운 받지 않은 이미지를 실행하려고 하면
docker hub에서 찾아 실행해줌
→8080포트는httpd가 사용 중이므로8081포트로 포트 포워딩 해줌- 브라우저에서
localhost:8081실행가능
- 브라우저에서
- 이미지 다운로드(
-
-dit,-name옵션 사용

-d:백그라운드에서 실행-i: interactive,-t: Pseudo-tty : bash를 통해 입출력--name: container 이름 지정bash프로그램을 ubuntu 내에 설치한 상태의 이미지를 실행하므로 컨테이너가 실행된 상태를 유지할 수 있음
(bash,sh,zsh,Power Shell등 여러 종류가 존재함)
-
docker run -d ubuntu로 실행시 컨테이너가 바로 종료됨
- 운영 체제만 있는 상태에서 어떤 프로그램도 설치되어있지 않은 이미지를 실행시키면 컨테이너는 바로 종료됨
- 이전에
httpd는 운영체제 안에apache가 설치된 이미지였기때문에 컨테이너가 실행된 상태로 유지될 수 있었음
docker attach로 컨테이너 접속
Docker를 공부하는 과정에서 작성한 포스트입니다. 이제 막 Docker를 접하시는 분들에게 도움이 되었으면 좋겠습니다!
< 출처 >
‘도커입문 1강~9강,’ 유튜브 비디오, 게시자 ‘메타코딩,’ 2023년01월24일~2023년02월12일, https://youtube.com/playlist?list=PL93mKxaRDidGMzIllhYKx1d6aMg6_5wW3
‘왕초보도 따라하는 도커 기초 강의 7 도커의 유용한 명령어,’ 유튜브 비디오, 13:05, 게시자 ‘재즐보프,’ 2020년01월31일, https://youtu.be/QLhpCbnoQkc