- Docker
 - Docker 구성 요소
 - Docker 설치 - CentOS7
 - Docker 설치 - Window
 - Docker 설치 - Ubuntu
 - Docker Client
 - 용어
 - 참고 문헌
 
Docker
Docker 구성 요소
Docker Client : CLI (Command Line Interface)
Docker Server : Docker Container 관리
Docker Compose : 여러개의 Docker Container로 구성된 애플리케이션을 관리
compose.yml
Docker Container : 독립 가상 시스템
Port mapping 작업 필요
Docker Registry : Docker Image를 저장하고 공유하는 저장소
Docker Hub
Docker Image : Docker Container를 담은 읽기 전용 template 파일
Docker File : Docker Image를 빌드하기 위한 구성 정보(command 등)를 담은 파일
Docker Swarm : Cluster 관리
Load Balance
Service Discovery
Docker Machine : Cloud에서 Docker Host를 관리
Docker 설치 - CentOS7
yum  -y  update
#--- Repository 목록 조회
#---     /etc/yum.repos.d/ 폴더에 있는 ~.repo 파일을 삭제하면 repository를 삭제할 수 있다.
yum  repolist
#--- 설치된 Docker 삭제
yum  remove  docker*
#--- Docker CE (Community Edition) 설치 준비
yum  install  -y  yum-utils  device-mapper-persistent-data  lvm2
#--- Docker CE Repository 설정
yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
# yum-config-manager  --enable  docker-ce-nightly
# yum-config-manager  --disable  docker-ce-nightly
# yum-config-manager  --enable  docker-ce-test
yum  makecache  fast
#--- Docker CE 설치
#--- /var/lib/docker/ 폴더 사용
mkdir  -p  /work/install/docker
cd  /work/install/docker
# yumdownloader  --resolve  docker-ce
curl  -O  http://mirror.centos.org/centos/7/os/x86_64/Packages/libseccomp-2.3.1-3.el7.x86_64.rpm
curl  -O  http://bo.mirror.garr.it/1/slc/centos/7.1.1503/extras/x86_64/Packages/container-selinux-2.9-4.el7.noarch.rpm
# curl  -O  http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.107-3.el7.noarch.rpm
# yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.55-1.el7.noarch.rpm
rpm  -ivh  libseccomp-2.3.1-3.el7.x86_64.rpm
rpm  -ivh  container-selinux-2.9-4.el7.noarch.rpm
# yum  -y  --enablerepo=rhui-REGION-rhel-server-extras  install  container-selinux
yum  -y  install  docker-ce  docker-ce-cli  containerd.io
# yum  list  docker-ce  --showduplicates  |  sort  -r
# yum  install  docker-ce-${version}  docker-ce-cli-${version}  containerd.io
systemctl  enable   docker.service
systemctl  restart  docker.service
docker  version
Docker 설치 - Window
Hyper-V 활성화 필요
다운로드 : https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows
Docker 설치 - Ubuntu
apt  update
apt  install  linux-image-etra-$(uname -r)  linux-image-extra-virtual
#--- Docker 저장소 설치
apt  install  apt-transport-https  ca-certificates  curl  \  software-properties-common
#--- Docker 저장소의 key 추가
curl  -fsSL  https://download.Docker.com/linux/ubuntu/gpg  |  apt-key  add
apt-key  fingerprint  0EBFCD88
add-apt-repository  "deb [arch=amd64] <-DOCKER-EE_URL> $(lsb_release -cs) \ stable -e"
apt  update
apt  install  docker-ce
Docker Client
Docker Command
#--- Docker image 관리
docker  search  [options]  ${image}     #--- Docker image 검색
docker  search  --filter=stars=50  mysql
docker  pull  ${image}:${tag}                 #--- Docker image 다운로드
docker  pull  mysql:latest
docker  images  [options]               #--- 로컬 머신에서 사용할 수 있는 최상위 image 목록
docker  images  -a
docker  inspect  [options]  ${image}    #--- Image의 상세 정보 표시 (JSON)
docker  rmi  [options]  ${mage}         #--- Image 삭제
#--- Docker Container 관리
docker  create  [options]  ${image}  [command  args]        #--- Container 생성 (실행 않음)
docker  start  ${container}             #--- Container 실행
docker  run  [options]  ${image}:  ${tag}  [command, args]  #--- Image 실행
docker  restart  [options] ${container} #--- Container 재기동
docker  ps  [options]                   #--- 실행중인 container 목록 (Container ID 확인)
docker  ps  -a                          #--- 모든 container 목록
docker  rename  ${container}  ${newName}#--- Container ID를 새로운 이름으로 재지정
docker  attach  [options]  ${container} #--- Container에 인터랙티브 방식으로 연결
docker  exec  [options]  ${container}  command  args       #--- Container에서 명령 실행
docker  cp  [options]  ${container}:~  ~                   #--- 파일 복사
docker  cp  [options]  ~  ${container}:~
docker  pause  ${container}             #--- Container 멈춤
docker  unpause  ${container}           #--- Container 재실행
docker  inspect  [options]  ${container}#--- Container의 상세 정보 표시 (JSON)
docker  inspect  -format='{{.NetworkSettings.IPAddress}}'  ${container}
docker  rm  [options]  ${container}     #--- Container 삭제
docker  logs  [options]  ${container}   #--- 로그 표시 (표준 출력, 표준 오류)
docker  diff  ${container}              #--- 변경된 파일 표시
docker  commit  [options]  ${container}  [${image}:${tag}]#--- Container로 Image 생성
#--- 실행 예
docker  pull  ubuntu:latest
docker  run  -it  ubuntu  /bin/bash
docker  pull  mysql:latest
docker  run  --name  ~  -e  MYSQL_ROOT_PASSWORD=~  -d  mysql:lastest
#--- container : mysql_container
#--- software : mysql
#--- os : ubuntu
docker  create  --name ${container}  -v  /var/lib/${software}  ${os}
docker  run  --volumes-from ${container}  -v  /var/lib/${software}:/var/lib/${software}  -e  MYSQL_USER=mysql  -e  MYSQL_PASSWS=~  -e  MYSQL_DATABASE=~  -e  MYSQL_ROOT_PASSWORD=~  -it  -p  3306:3306  -d  mysql
docker  run  -d  --name  ~  --link  mysql:mysql  wordpress
Docker File
Dockerfile
From  ubuntu:14.04
Maintainer  pnuskgh@gmail.com
Run  apt  update
Run  apt  -y  install  MySQL-server
EXPOSE  3306
CMD  ["/usr/bin/MySQLd_safe"]
용어
LXC (Linux Container, 리눅스 컨테이너)
참고 문헌
                            최종 수정일: 2024-09-30 12:26:18
                        
                        이전글 : 
                            
                            다음글 : 
                                
                            
                        