본문 바로가기
Docker

DevOps Day 27 (4.12) DOCKER_Docker CLI

by Jackykim 2023. 4. 13.

Docker CLI (1)

Precaution
- Ubuntu 운영체제로 실습을 진행하는 경우, 관리자 권한(sudo)으로 Docker 명령어를 실행해야 합니다.
- permission denied 메시지가 포함된 오류를 만난다면, sudo 로 관리자 권한을 부여합니다.

 

Docker CLI
Docker Docs 통해 명령어, 옵션 등 사용법을 확인 할 수 있습니다.
Docker docs : https://docs.docker.com/engine/reference/commandline/container_run/
- 사용법 : Docker CLI, Docker-Compose CLI, API Reference
- 환경 및 빌드 파일 구성 : DockerFile, Docker-Compose File

 

도커 이용하기

Docker/Whalesay (예시)

레지스트리 (Registry)
-
도커 이미지를 관리하는 공간
- 지정하지 않으면 도커 허브 (docker hub)를 기본 레지스트리로 설정합니다
- 레지스트리는 Docker hub, Private Docker Hub 등 나뉠 수 있습니다

 

레포지토리 (Repository)
-
레지스트리 내에 도커 이미지가 저장되는 공간입니다.

- 이미지 이름이 사용되기도 합니다.
- GitHub의 레포지토리와 유사하게 생각하시면 됩니다.

 

태그 (Tag)
- 같은 이미지라고 할지라도 버전 별로 안의 내용이 조금은 다를 수 있습니다.
- 해당 이미지를 설명하는 버전 정보를 주로 입력합니다.
- 특별히 다른 것을 지정하지 않는다면 latest 태그를 붙인 이미지를 가져옵니다.

 

Docker Example 수행하기:
1. Docker image pull docker/whalesay:latest (Docker 에 Ubuntu 설정 지정)
2. Docker image ls
3. Docker container run --name 컨테이너_이름 --rm docker/whalesay cowsay boo

4. Docker image rm docker/whalesay

 

Docker CLI (2) – Copy, Dockerfile

Docker 컨테이너에 파일을 복사하기
게임 서버, 서버와 같이 여러분이 사용할 도구가 도커 이미지에 모두 구성되어 있지 않은 경우도 있습니다. )
1.
서버는 도커 컨테이너로 실행
2.
서버를 구성하는 파일은 직접 만들거나 가져온 파일 구성

 

장점 :
-
서버에 문제가 생기는 것을 호스트와 별개로 파악할 있음
-
문제가 생긴 서버를 끄고, 마치 공장 초기화를 하듯 도커 이미지로 서버를 재구동할 있음

로컬에 있는 파일과 도커 이미지를 연결하는 방법은 크게 CP(Copy) 이용하는 방법과 Docker Volume 기능을 이용하는 방법으로 나뉩니다
-

CP(Copy) : 호스트와 컨테이너 사이에 파일을 복사(Copy)
- Volume :
호스트와 컨테이너 사이에 공간을 마운트(Mount)

 

Httpd 서버 (Pacman)
1. Github에서 내용
git clone
2. Docker Container run –name “container name” -p 818:80 httpd

Docker Image
Docker Container

상단 위처럼 Docker 프로그램에 Image / container 파일이 생성됩니다.
3. Container
생성하고 브라우저에 접속하면 하단 페이지가 보입니다.

4. 서버가 정상적으로 열리면 docker container cp 명령어로 로컬호느트에 있는 파일을 컨테이너에 전달 합니다. Docker container cp ./ “container name”:/usr/local/apache2/htdocs/
5.
이상 없이 작동 경우 Pacman 페이지를 있습니다. (페이지 Refresh 필요)

Docker 이미지 만들기
이미지로 만들어 놓을 때의 장점은 다음과 같습니다.
-
이전에 작업했던 내용을 다시 수행하지 않아도
-
배포 관리가 유용
1. Docker container commit “container name” my pacman:1.0
2. Docker image ls
확인 가능합니다.
3. Docker run –name my_web2 -p 900:810 my_pacman:1.0
으로 900포트에서 서버 구성

 

Docker image 빌드를 위한 파일인 DockerFile 만드는 방법
Dockerfile
만들고, Dockerfile 대로 이미지를 build 하는 방법입니다.
1. From httpd:2.4 #
베이스 이미지를 httpd:2.4 사용합니다.
2. Copy ./ /usr/local/apache2/htdocs/ #
호스트의 현재 경로에 있는 파일을 생성할 이미지
3. Docker build –tag my_pacman:2.0 #Dockerfile
도커 이미지 파일을 생성합니다.
4. Docker run –name my_web3 -p 901:80 my_pacman:2.0

 

개의 Docker Image 다루는 방식 연습

1. 필요한 repository github 에서 clone / pull
2. Docker run –name “container Name” -d -p 3000:80 sebcontents/part1
3. Docker container cp ./ “container name”:/usr/local/apache2/htdocs/
4.
이상 없이 작동하면 컨테이너 txt 파일 안에 있는 단어를 확인 가능합니다
.
5. Docker exec -it “container name” bash

6. Cd / 명령어로 루트 디렉토리로 이동합니다


7. Ls
명령으로 data 폴더 확인

8. data 폴더에 들어간 apt update + apt install nano 내용 확인 가능합니다.

 

개의 Docker Image 다루는 방식 연습
Docker -compose CLI 개의 Docker Image 다루는 방식을 연습합니다.
ref: https://docs.docker.com/compose/reference/
- nginx
이미지를 기반으로 sebcontents/client 이미지를 이용하여 client 컨테이너를 생성합니다.
- node
이미지를 기반으로 sebcontents/server 이미지를 이용하여 server 컨테이너를 생성합니다.

1. Github 에서 내용 git clone / pull 합니다.
2.
혹은 docker-compose.yml 파일을 위의 소스를 그대로 붙여넣어 생성합니다. 파일을 생성할 터미널의 위치는 무관합니다
.

3. yaml 파일이 있는 위치에서 docker-compose up -d명령어를 통해 yaml 파일을 실행합니다.
4.
브라우저에서 localhost:8080 혹은 127.0.0.1:8080 에서 실행된 client 화면을 확인한 , 로그인 합니다. 로그인 정보는 브라우저 화면을 확인하세요.

 

'Docker' 카테고리의 다른 글

DevOps Day 28 (4.13) DOCKER_실습  (0) 2023.04.13
DevOps Day 26 (4.11) DOCKER  (0) 2023.04.12