/ DEVOPS

Docker - 설치 및 실행

DevOps 관련 포스팅

이 글은 https://www.youtube.com/playlist?list=PL93mKxaRDidGMzIllhYKx1d6aMg6_5wW3 영상을 정리한 것입니다.

0. 개요

image

  • 커널 부분을 확대해 보면, host 운영체제인 windows의 cmd창으로 명령어를 입력하면 docker server가 container에 명령을 하는 형식으로 작동

  • container: image가 실행되어(=메모리에 올라감) instance 가 된 상태를 이름 image

1. Docker 데스크탑 버전 설치(windows)

  1. https://www.docker.com/products/docker-desktop/ 접속

    image

    image

  2. 바탕화면에서 Docker Desktop 실행 image

  3. 명령어 복사 후 cmd에서 실행 image

    image

  4. 현재 실행 중인 컨테이너 확인 image

  5. 브라우저에 localhost 입력해 첫 화면 확인 image

  6. docker images 명령어로 이미지 확인 image

  7. 회원 가입 및 로그인 image

2. Docker image 다운로드

  1. docker hub에서 다운 받을 image 검색 image

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

    • cmd에서 명령어 입력 image

      image

    • cmd에서 명령어 입력 image

  3. 다운받은 image 확인
     $ docker images
    

    image

  4. image 삭제
     # image 이름으로 삭제
     $ docker rmi ubuntu
    	
     # image ID(앞부분만 입력해도 됨)로 삭제
     $ docker rmi b89f
    

    image

3. Daemon process로 실행

  1. docker pull openjdk 실행으로 openjdk 이미지 다운로드 후 docker run 으로 실행하면 실행 중인 컨테이너(docker ps)에 없음 image

    image

    • openjdkdaemon이 아니므로 container가 실행 후 바로 종료됨
  2. -d 옵션으로 백그라운드 실행 image

4. 포트 포워딩(port forwarding)

  • Host OS(Windows)에 nginxapache를 포트포워딩한 형태 image

  • Host OS(Windows)에 nginx(Linux)와 apache(Linux)를 포트포워딩한 형태
    → 여러 운영체제를 이용하는 형태

    image

  1. docker pull httpd 실행으로 httpd이미지 다운로드
    • httpdddaemon processd를 의미함

    image

    image

  2. docker run -d httpd으로 httpd 이미지 실행 image

    브라우저에서 localhost:8080 으로 접속 불가

    image

    • docker container는 host os와 다른 네트워크 구성을 가지므로 포트포워딩의 과정이 필요함 image
  3. image를 실행(run)할 때 -p 옵션을 부여해줌 image

    • 브라우저에서 localhost:8080 으로 접속 가능 image

5. docker run

  1. docker run명령어로 이미지 다운로드(pull)와 실행(run)을 동시에 진행
    • 이미지 다운로드(pull)와 실행(run)을 동시에 실행 가능
    • 다운 받지 않은 이미지를 실행하려고 하면 docker hub에서 찾아 실행해줌 image
      8080포트는 httpd가 사용 중이므로 8081포트로 포트 포워딩 해줌
      • 브라우저에서 localhost:8081 실행 가능 image
  2. -dit, -name 옵션 사용 image

    image

    • -d: 백그라운드에서 실행
    • -i: interactive, -t: Pseudo-tty : bash를 통해 입출력
    • --name: container 이름 지정
    • bash프로그램을 ubuntu 내에 설치한 상태의 이미지를 실행하므로 컨테이너가 실행된 상태를 유지할 수 있음
      (bash, sh, zsh, Power Shell 등 여러 종류가 존재함)
  3. docker run -d ubuntu 로 실행시 컨테이너가 바로 종료됨 image

    • 운영 체제만 있는 상태에서 어떤 프로그램도 설치되어있지 않은 이미지를 실행시키면 컨테이너는 바로 종료
    • 이전에 httpd는 운영체제 안에 apache가 설치된 이미지였기때문에 컨테이너가 실행된 상태로 유지될 수 있었음
  4. docker attach 로 컨테이너 접속 image

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