DOCKER 사용법

- 16 mins

Docker

기존 설치 제거

$ sudo apt remove docker docker-engine docker.io containerd runc

기존에 저장된 도커 오브젝트(images, containers, volumes, network) 제거 $ sudo rm -rf /var/lib/docker $ sudo rm -rf /var/lib/containerd

도커 설치 스크립트 다운로드

$ sudo apt-get update $ sudo apt-get install curl $ curl https://get.docker.com > docker-install.sh $ chmod 755 docker-install.sh

도커 설치

$ sudo ./docker-install.sh

도커 컨테이너 다루기

도커 컨테이너 생성 및 실행

우분투 14.04 컨테이너 생성

컨테이터 나가기 및 종료

도커 컨테이너 실행 세부 단계

도커 이미지 내려받기

도커 이미지 목록 확인하기

도커 이미지로 컨테이너 생성하기

도커 컨테이너 실행하기

도커 컨테이너에 들어가기

정리

도커 컨테이너 목록 확인

실행 중인 컨테이너 목록 보기

모든 컨테이너 목록 보기

도커 컨테이너 삭제

사용하지 않는 컨테이너 삭제하기

실행 중인 컨테이너 삭제하기

또는 -f 옵션을 사용하여 종료와 삭제를 한 번에 처리하기

정지된 모든 컨테이너 삭제하기

실행 중인 컨테이너 모두 정지 후 삭제하기

도커 컨테이너를 외부에 노출하기

도커가 설치된 호스트에서만 접근 가능

컨테이너를 노출 시키기

컨테이너에 아파치 웹 서버 설치 및 시작시키기

컨테이너를 실행하고 있는 호스트로 접속하기

호스트와 바인딩된 포트번호 확인하기

Detached 모드 컨테이너의 내부 셸을 사용하기

상호 입출력 가능한 상태로 접속하기

컨테이너 내부의 실행 결과만 확인하기

도커 컨테이너 활용

데이터베이스 컨테이너와 웹서버 컨테이너 만들기

데이터베이스 컨테이너 만들기

도커 이미지를 다운로드 받을 때 플랫폼 이름을 명시하지 않으면 현재 사용하는 OS에 맞는 이미지를 찾는다. macOS 플랫폼에 맞는 MySQL 이미지를 찾을 수 없다. macOS에서 이미지를 다운로드 받고 싶다면 플랫폼 이름을 명시하라!

워드프레스 기반 블로그 서비스 만들기

접속 확인

도커 컨테이너 run 옵션

도커 볼륨 다루기

호스트 볼륨 공유하기

컨테이너 삭제 후에도 데이터가 보존되는 것을 확인하기

호스트 디렉토리를 컨테이너의 존재하는 디렉토리와 연결할 때

볼륨 컨테이너 공유하기

volume_override 컨테이너의 볼륨을 공유하기

도커 볼륨 사용하기

도커 볼륨 생성하기

도커 볼륨 조회하기

도커 볼륨 사용하기

도커 볼륨 공유하기

도커 볼륨의 실제 위치 알아내기

도커 볼륨 자동 생성하기

컨테이너가 사용하는 도커 볼륨 확인하기

사용하지 않는 볼륨을 자동으로 삭제하기

mount 옵션

mount 옵션으로 도커 볼륨 연결하기

mount 옵션으로 호스트 디렉토리를 컨테이너에 연결하기

도커 네트워크 다루기

도커 호스트의 가상 이더넷 카드

도커 네트워크

컨테이너의 네트워크

도커에서 기본적으로 쓸 수 있는 네트워크 확인하기

도커 엔진의 네트워크 목록 조회

특정 네트워크의 상태 조사하기

브릿지 네트워크

브릿지 바인딩 조회

브릿지 바인딩 정보 조회를 위한 도구 설치

브릿지 바인딩 정보 조회하기

브릿지 네트워크 생성

새 브릿지 네트워크 생성하기

새 컨테이너에 브릿지 네트워크 연결하기

브릿지 네트워크 상세 정보 보기

컨테이너에 브릿지 네트워크를 붙이기/떼기

컨테이너에 브릿지 네트워크 떼기

컨테이너에 브릿지 네트워크 붙이기

컨테이너 로깅

json-file 로그 사용

도커 이미지 다루기

도커 허브라는 중앙 이미지 저장소에서 도커 이미지 검색하기

도커 이미지 생성

이미지 목록 조회

이미지로 만들 컨테이너 준비

컨테이너를 이미지로 만들기

만든 이미지로 컨테이너 만들기

변경한 컨테이너로 새 이미지 만들기

도커 이미지 정보 조회

이미지 정보 살펴보기

이미지 레이어 구조에 대한 변경 내역 확인하기

도커 이미지 삭제

이미지 삭제하기

댕글링(dangling) 이미지 다루기

도커 이미지 추출

도커 이미지를 한 개의 파일로 추출하기

-$ sudo docker save -o ubuntu_14_04.tar ubuntu:14.04

도커 이미지 로드하기

도커 이미지 배포

도커 허브(https://hub.docker.com/)에 회원 가입 및 로그인

이미지 저장소 생성

테스트용 이미지 생성

테스트용 이미지 커밋하기

이미지에 태깅하기

도커 허브에 로그인 하기

저장소에 이미지 올리기

도커 허브 사이트의 Tags 탭에서 확인할 것!

저장소에 업로드한 이미지 가져오기

가져온 이미지로 컨테이너 생성, 실행 및 접속

도커 이미지 목록 확인하기

도커 이미지로 컨테이너 생성하기

도커 컨테이너 실행하기

도커 컨테이너에 들어가기

웹 애플리케이션 배포 - 직접 컨테이너 구성 및 배치하기

MariaDB 컨테이너 생성

MariaDB 도커 이미지 가져오기

MariaDB 컨테이너 생성 및 실행

MariaDB 컨테이너 접속

MariaDB 버전 확인

MariaDB 클라이언트 실행 및 root 사용자로 서버 접속

웹애플리케이션의 DB 환경 구축

myapp 웹 애플리케이션 컨테이너 생성

Ubuntu 22.04 컨테이너 생성 및 실행

ifconfig 등 네트워킹 관련 프로그램 추가

nano 에디터 설치

JDK 17 설치

JAVA_HOME 환경 변수 설정

git 설치

wget 설치

unzip 설치

gradle 다운로드 및 설치

nodejs 및 npm 설치

myapp git 저장소 가져오기

myapp 자바스크립트 라이브러리 설치

myapp 빌드

ping 설치

mariadb 접속 확인

myapp 실행

Dockerfile 다루기

스프링부트 웹 프로젝트를 도커 컨테이너로 실행하기

Docker 파일 작성

…/myapp/app-server/Dockerfile

FROM openjdk:17

ARG JAR_FILE=build/libs/app-server-0.0.1-SNAPSHOT.jar

COPY ${JAR_FILE} app.jar

ENTRYPOINT [ "java", "-jar", "app.jar" ]

Dockerfile로 이미지 생성하기

$ docker build -t eomjinyoung/myapp:0.0.2 .

컨테이너 생성 및 실행하기

$ docker run -d -p 80:80 -v /mnt/c/Users/bitcamp/webapp-upload:/root/webapp-upload --name myapp eomjinyoung/myapp:0.0.2
comments powered by Disqus