본문 바로가기

CentOS/Docker

(13)
[Docker]Dockerfile 기본 작성 간단한 Dockerfile 작성 # Dockerfile - FROM FROM : Docker Base Image (기반이 되는 이미지, : 형식으로 설정) ex> FROM node node를 사용해서 이미지를 생성. - WORKDIR WORKDIR : "RUN", "CMD", "ENTRYPOINT" 명령이 실행될 작업 디렉터리 ex> WORKDIR /app 작업 디렉터리를 /app으로 설정.(추후 모든 소스 코드도 여기에 생성) - COPY COPY : 파일 복사 ex> COPY . /app 맨 처음 .은 Dockerfile이 있는 폴더를 의미함(host file system) 두번째 .은 그 파일을 저장해야 되는 내부 디렉터리를 의미(image/container file system) Dockerfil..
[Docker]Docker build 기본 순서 1. Dockerfile 생성 # vi Dockerfile FROM : Docker Base Image (기반이 되는 이미지, : 형식으로 설정) MAINTAINER : 메인테이너 정보 (작성자 정보) RUN : Shell Script 또는 명령을 실행 CMD : 컨테이너가 실행되었을 때 명령이 실행 LABEL : 라벨 작성 (docker inspect 명령으로 label 확인할 수 있습니다.) EXPOSE : 호스트와 연결할 포트 번호를 설정한다. ENV : 환경변수 설정 ADD : 파일 / 디렉터리 추가 COPY : 파일 복사 ENTRYPOINT : 컨테이너가 시작되었을 때 스크립트 실행 VOLUME : 볼륨 마운트 USER : 명령 실행할 사용자 권한 지정 WOR..
[Docker][k8s]kubespray - kubernetes 설치 구성 관리 도구인 앤서블(ansible)을 이용해서 멀티노드 쿠버네티스 클러스터를 구축 master CentOS 7.6 192.168.111.100 node1 CentOS 7.6 192.168.111.101 node2 CentOS 7.6 192.168.111.102 1. swap 메모리 비활성화 # swapoff -a 2. ip forward 설정 및 확인 설정 확인> # cat /proc/sys/net/ipv4/ip_forward 설정 방법> # echo 1 > /proc/sys/net/ipv4/ip_forward 3. 방화벽 해제 및 selinux 해제 # systemctl stop firewalld # systemctl..
[Docker][k8s]minikube - helloworld minikube : 하나의 노드로 구성된 간단한 클러스터를 배포하는 가벼운 쿠버네티스 1. 사용자 생성(minikube) 및 설정 작 [root@localhost ~]# useradd minikube [root@localhost ~]# passwd --stdin minikube [root@localhost ~]# echo "minikube ALL=(ALL) ALL" >> /etc/sudoers.d/minikube [root@localhost ~]# sudo usermod -aG docker minikube && newgrp docker 2. minikube 설치 [minikube@localhost ~]$ curl -LO https://storage.googleapis.com/minikube/release..
[Docker]빌더 패턴 빌더 패턴이란 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴이다. 경량화에 사용 한다. 1. helloworld.go 파일을 빌드 후 실행하는 컨테이너 이미지 생성 [root@localhost test]# mkdir build-pattern [root@localhost test]# [root@localhost test]# cd build-pattern/ [root@localhost build-pattern]# [root@localhost build-pattern]# vi helloworld.go package main import "fmt" func main() { fmt.Println("Hello World") } [root@loca..
[Docker]CMD vs ENTRYPOINT - CMD 1. Dockerfile 작성 2. 이미지 생성 및 확인 # docker image build -t cmd-img -f Dockerfile-cmd . # docker image ls 3. 컨테이너 생성 - Dockerfile-cmd 파일의 CMD 항목의 실행 결과 - container run 명령에서 전달한 명령어가 실행된 결과 - container run 명령에서 전달한 명령어가 Dockerfile의 CMD 항목의 명령어를 덮어씀 - ENTRYPOINT 1. Dockerfile 작성 2. 이미지 생성 및 확인 # docker image build -t entrypoint-img -f Dockerfile-entrypoint . # docker image ls 3. 컨테이너 생성 - Docker..
[Docker]container 접속 1. 컨테이너 실행 # docker container run -itd --rm --name myserver ubuntu 2. 컨테이너 확인 # docker container ls 3. docker exec : 특정 컨테이너 환경에서 명령어를 실행하거나, 컨테이너의 내부 환경에 대해서 알아보거나 디버깅 # docker container exec -it myserver /bin/bash 4. attach로 접속
[Docker]docker container run 1. attach 모드 컨테이너 실행 attach : 실행되고 있는 컨테이너에 접속 2. attach 모드 종료 3. detach 모드 컨테이너 실행 detach : 실행되고 있는 컨테이너에 새로운 명령을 할 수 있는 명령어 4. attach 모드에서 detach 모드로 전환 ctrl + p + q 입력 하여 전환 가