일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- devops
- 클라우드
- kubernetes
- AWS
- ios
- centOS7
- Swift
- 부스트코스
- boj
- 도커 이미지
- 리눅스
- Python
- 네트워크
- k8s
- centOS
- NGINX
- 운영체제
- 도커
- 인프라
- linux
- os
- docker
- swift 클로저
- 도커 명령어
- 프로세스
- 도커 컨테이너
- C++
- 컨테이너
- 쿠버네티스
- 데브옵스
- Today
- Total
목록Infra & Devops/Docker (16)
귀염둥이의 메모
Dockerfile 이란? Docker에서는 인프라 구성을 기술한 파일을 Dockerfile이라고 한다. Docker 이미지를 작성하기 위해서는 다음과 같은 내용들이 필요하다. 베이스가 될 Docker 이미지 Docker 컨테이너 안에서 수행한 조작(명령) 환경변수 등의 설정 Docker 컨테이너 안에서 작동시켜둘 데몬 실행 docker build 명령으로 Dockerfile에 기술된 구성 정보를 바탕으로 Docker 이미지를 작성한다. Dockerfile 기본 구문 Dockerfile은 텍스트 형식의 파일로, 에디터 등을 사용하여 작성한다. 확장자는 필요 없고, 'Dockerfile' 이라는 이름의 파일에 인프라 구성 정보를 작성한다. Dockerfile 이외의 파일로 이미지를 작성할 시 이미지를 빌드..
컨테이너는 이미지 바탕으로 작성하지만, 반대로 컨테이너를 바탕으로 이미지를 작성할 수 있다. 컨테이너로부터 이미지 작성 (docker container commit) docker container commit [옵션] [이미지명][:태그명] 옵션 설명 --author, -a 작성자 지정 --message, -m 메시지 지정 --change, -c commit 시 Dockerfile 명령을 지정 --pause, -p 컨테이너를 일시정지하고 commit 이미지 만들기 # 컨테이너 실행 docker run -dit --name Test centos:latest # 파일 생성 docker exec Test touch /root/hello.txt docker container commit -a "My_Image"..
컨테이너의 환경변수, 작업 디렉토리 등을 지정하여 생성/실행 docker run [환경설정 옵션] 이미지명[:태그] [인수] 옵션 설명 --env=[환경변수], -e 환경변수 설정 --env-file=[파일명] 환경변수를 파일로부터 설정 --read-only=[true | false] 컨테이너의 파일 시스템을 읽기 전용 여부 설정 --workdir=[경로], -w 컨테이너의 작업 디렉토리 지정 --user=[사용자명], -u 사용자명 or UID를 지정 환경변수 설정 [user@localhost ~]$ docker run -it -e TEST1=Hello -e TEST2=World --rm centos:latest [root@aed51cb6343c /]# echo $TEST1 Hello [root@aed..
Bind Mount docker run --volume [호스트경로]:[컨테이너 내 경로] 옵션 Z : SELinux 문제 해결 ro : 볼륨을 읽기 전용으로 마운트 호스트 OS ~/bindmount 를 컨테이너 /tmp/bindmount 로 마운트 [user@harbor ~]$ mkdir bindmount [user@harbor ~]$ touch bindmount/hello.txt docker run -dit --name bind-mount-test \ --rm \ --volume ~/bindmount:/tmp/bindmount \ centos:latest read-only docker run -dit --name read-only-test \ --rm \ --volume ~/bindmount:/tmp..
볼륨을 사용하는 목적? 데이터의 영구적인 보존을 위하여 : 컨테이너 삭제 시 컨테이너 내부의 데이터는 함께 삭제 같은 데이터를 여러 컨테이너가 공유 호스트의 설정 파일 등을 공유 : /etc/resolv.conf Docker의 볼륨 유형 Bind Mount Volume Tmpfs Mount Bind Mount 호스트의 디렉토리를 직접 공유 중요한 시스템 파일이나 디렉토리의 생성, 수정 또는 삭제를 포함하여 컨테이너에서 실행되는 프로세스를 통해 호스트 파일 시스템을 변경할 수 있음 (사용하기 간편하지만 설정에 주의가 필요함) Volume docker engine을 통해 사용할 수 있는 볼륨을 생성하여 사용 (docker volume create) 실제 생성된 볼륨은 호스트의 /var/lib/docker/v..
docker cotainer run [자원 옵션] 이미지명[:태그명] [인수] --cpu-shares, -c : CPU의 사용 배분(상대 비율), 기본값은 1024 --memory, -m : 사용할 메모리를 제한하여 실행 (단위는 b, k, m, g 중 하나) --volume=[호스트 디렉토리]:[컨테이너 디렉토리], -v : 호스트와 컨테이너의 디렉토리 공유 docker container stats (자원 사용률 보기) 항목 설명 CONTAINER ID 컨테이너 식별자 NAME 컨테이너명 CPU % CPU 사용률 MEM USAGE / LIMIT 메모리 사용량 / 컨테이너에서 사용할 수 있는 메모리 제한 MEM % 메모리 사용률 NET I/O 네트워크 I/O BLOCK I/O 블록 I/O PIDS PID..
Driver 기본 생성 특징 bridge bridge Docker 내부에 네트워크를 구성하고, 호스트의 인터페이스를 사용하여 외부와 연결 가능한 구성 호스트의 기본 bridge 인터페이스 : docker0 컨테이너의 기본 bridge 인터페이스 : veth... 필요 시 기본 bridge 네트워크 이외의 네트워크를 새롭게 생성하여 사용 가능 host host 호스트의 네트워크 인터페이스 정보를 그대로 사용 호스트의 주소를 통해 컨테이너에서 사용중인 포트로 접근 가능 포트 충돌 문제나, 네트워크 격리가 해제되는 등의 문제로 사용이 권장되지 않음 null none 네트워크 구성이 필요하지 않은 컨테이너에서 사용 macvlan 없음 호스트의 네트워크 인터페이스와 같은 네트워크에 연결시키는 방식 macvlan ..
도커 컨테이너 Network Docker 컨테이너끼리 통신을 할 때는 Docker 네트워크를 통해 수행한다. docker network ls 명령으로 Docker 네트워크 목록을 확인할 수 있다. 기본 값으로 bridge, host, none 네트워크가 있다. docker network ls [옵션] 옵션 설명 -f, --filter=[] 출력을 필터링 --no-trunc 상세 정보 출력 -q, --quiet 네트워크 ID만 표시 필터링에서 이용할 수 있는 키 값 설명 driver 드라이버 지정 id 네트워크 ID label 네트워크에 설정된 라벨 name 네트워크명 scope 네트워크의 스코프 type 네트워크의 타입 # 네트워크 드라이버가 bridge인 네트워크들의 네트워크 ID를 출력 docker ..
컨테이너 생성 (docker container create) docker (container) start [이름] docker ps -a (= docker container ls -a) : 모든 컨테이너 보기 컨테이너 시작 (docker container start) docker (container) start [옵션] [컨테이너 식별자] 정지된 컨테이너를 시작할 때 start 명령을 사용 --attach, -a : 표준 출력, 표준 오류 출력을 연다 --interactive, -i : 컨테이너의 표준 입력을 연다 start는 기본적으로 컨테이너를 백그라운드 형태로 실행한다, run 이랑 다름 컨테이너 정지 (docker container stop) docker (container) stop [옵션] [..
Docker 이미지를 레지스트리에서 다운로드/업로드 Docker 컨테이너의 시작/정지 모든 조작은 Docker 명령으로 수행한다 이미지 검색 (docker search) docker search [옵션] 옵션 설명 --no-trunc 결과를 모두 표시 --limit n건의 검색 결과를 표시 --filter=stars=n star의 수(n 이상)를 지정 NAME : 이미지 이름 DESCRIPTION : 이미지 설명 STARS : 즐겨찾기 수 OFFICIAL : 공식 이미지인지? AUTOMATED : Dockerfile을 바탕으로 자동 생성된 이미지인지? Docker Hub에는 사용자가 작성한 임의의 이미지를 공개할 수 있다. 그래서 Docker 이미지의 이름을 고유하게 하기 위해 '사용자명/이미지명' 형식..