Software Workshop

이하의 내용은 요즘에는 잘 쓰이지 않는 복잡한 방법에 대한 설명이라서 다음 문서를 참고할 것
macOS에서_Docker_container_설치하기

개념

Benchmark

https://www.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack

Installation

VirtualBox가 따로 설치되어 있지 않다면 cask와 VirtualBox를 설치

homebrew cask 설치

cask로 설치

brew install caskroom/cask/brew-cask

cask는 CLI로 Mac OS X 애플리케이션을 설치할 수 있는 도구

VirtualBox 설치

brew cask install virtualbox

이미 설치되어 있다면 필요없음
Mac OS X에서는 직접 docker를 실행할 수 없어서 VM 위에 올려야 함

docker 설치

brew install docker

boot2docker 설치

brew install boot2docker

환경설정을 .bashrc에 등록

boot2docker 초기화

boot2docker init

boot2docker 시작

boot2docker up

Tutorial

Docker가 설치된 이후에는 macOS 뿐만 아니라 Linux에서도 동일한 명령으로 Docker를 사용할 수 있음

ubuntu 이미지 검색

docker search ubuntu

centos 이미지 검색

docker search centos

Docker 공통 저장소에 업로드되어 있는 이미지 가져오기

docker pull learn/tutorial

centos 컨테이너에서 bash를 실행

docker run -i -t centos /bin/bash

컨테이너 조회

docker ps

최신 컨테이너 조회

docker ps -l

모든 컨테이너 조회

docker ps -a

컨테이너에서 exit로 빠져나오면 ps 명령의 결과에 Exited라고 표시됨

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2dc0f67ec730 centos "bash" 44 seconds ago Exited (0) 2 seconds ago elastic_hodgkin

컨테이너 재시작하기

docker restart 2dc0f67ec730

컨테이너에 연결하기(내부로 접속하기)

docker attach 2dc0f67ec730

컨테이너를 재시작하면서 연결하기

docker exec -i -t 컨테이너ID /bin/bash

컨테이너 종료

docker kill 컨테이너아이디

컨테이너 삭제

docker rm 컨테이너아이디

컨테이너 이미지 삭제

docker rmi 이미지이름

이미지를 실행하여 컨테이너 내부에서 실행

docker run learn/tutorial echo hello world
docker run learn/tutorial apt-get install -y ping

컨테이너 내부에서 ping을 설치

새로운 이름의 이미지로 커밋

docker commit 컨테이너아이디 새로운이미지이름
docker commit 6982 learn/ping

commit 후에 나오는 아이디를 가지고 검사 가능함

docker inspect efe

새롭게 커밋된 이미지 내부에서 명령 실행

docker run learn/ping ping google.com

이미지 목록 조회

docker images

내 이미지를 공통 저장소에 업로드(push)

docker push learn/ping

부모 이미지로부터 변경된 내역 확인하기

docker diff 2dc0f67ec730

참고자료

Pyrasis님의 Docker 기본 사용법