Docker 개요

2022. 5. 10. 18:10docker

Docker(=/ container)

 

Container의 핵심 기술

 ●Namespace : isolation(격리)로써 기본적으로 프로세스를 격리시켜준 핵심 기술 

  ▶ IPC NS : Inter-Process Communication으로 떨어져 있는 프로세스들을 소통하게 한다.

  ▶ Network NS : Network Namespace

 

 

 

 

Docker 설치할 VM 구성

~/vagrant/container/Vagrantfile

Vagrant.configure("2") do |config|
	# Define VM
	config.vm.define "docker" do |centos|
		centos.vm.box = "ubuntu/focal64"
		centos.vm.hostname = "docker"
		centos.vm.network "private_network", ip: "192.168.100.100"
		centos.vm.provider "virtualbox" do |vb|
			vb.name = "docker"
			vb.cpus = 2
			vb.memory = 4096
		end
	end
end​

SSH 연결 구성 

Host docker
    HostName 192.168.100.100
    User vagrant
    IdentityFile C:\Users\Playdata\vagrant\container\.vagrant\machines\docker\virtualbox\private_key​

Docker Engine 설치

>https://docs.docker.com/engine/install/ubuntu/ (우분투로 설치할 경우)

 

Install Docker Engine on Ubuntu

 

docs.docker.com

sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null​
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin​

 - docker-ce : Docker Engine

 - docker-ce-cli : docker command

 - containerd.io : Container Runtime Interface

 - docker-compose-plugin : Docker Compose

 

sudo usermod -aG docker vagrant​

원래 docker는 기본적으로 root 사용자로 쓸 수 있게 해놓지만 root 사용자가 아닌  

기존 사용하던 vagrant 사용자를 docker 설치로 생성된 그룹에 넣어주어 vagrant 사용자로 docker 사용을 가능케 한다. 

 

터미널 환경 구성 

zsh 쉘 설치 

sudo apt install zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"​

~/.zshrc 파일 수정 

...
ZSH_THEME="agnoster"
...​

https://github.com/powerline/fonts 폰트 설치

리소스 재시작 

source ~/.zshrc​

zshrc 쉘 서식 중 oh-my-zsh 설치

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions​

~/.zshrc 파일 수정

(set nu:)
73 plugins=(
74         git
75         zsh-autosuggestions
76         zsh-completions
77 )​

리소스 재시작 

source ~/.zshrc​

컨테이너 이미지

 (registry/)repository/name:tag

 

컨테이너 커널(운영체제os)x 호스트의 커널을 이용
리눅스의 컨테이너와 윈도우의 컨테이너는 다름 호환 되지 않는다.

 

 ● 리눅스 배포판 이름으로된 이미지들

  ▶ ubuntu

​  ▶ centos

  ▶ rocky

  ▶ debian

  ▶ alpine

  ▶ busybox

  ▶ amazonlinux

  ▶ oraclelinux

   ...

-> 이러한 이미지들을 Base Image 라고 한다. ​​​​​​​​

​컨테이너의 Lifecycle

create -> start -> (pause) -> (unpause) -> (kill) -> stop -> rm
run ---------->

 - run은 앞에 creat와 srart에 과정을 한번에 수행하게 한다. 

 > application이 종료되면 컨테이너 또한 종료(stop)된다. 

 

 ● 옵션

  ▶ -i : STDIN 유지

  ▶ -t : Terminal 할당

  ▶ -d : Detach

 

 - -it 옵션은 Shell을 실행하는 이미지에서 대부분 같이 붙어서 사용된다. 

  (옵션을 안 붙일 경우 사용을 할 수 있는게 없어서 종료된다. ) 

 - -d 옵션은 application이 계속적으로 실행되어야 할 때 사용된다. 

 

 

 ​

'docker' 카테고리의 다른 글

Docker 관리  (0) 2022.05.10