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)
-
바탕화면에서 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