Docker
개요
반가상화 기술.
기본 사용
설치
과정 | 설명 | 방법 |
---|---|---|
설치 | 그냥 설치. | sudo apt update && sudo apt-get install docker.io && sudo apt-get install docker-compose |
설치확인 | docker --version
docker-compose --version | |
포테이너 설치
(선택사항) |
아무래도 GUI 환경보단 직관적인 게 좋지...?
이후 대충 localhost로 접속해서 계정 생성하고 사용하면 된다.
|
sudo docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer |
기본설정
과정 | 설명 | 방법 |
---|---|---|
도커파일 저장경로 확인 | 공간이 넉넉한 파티션에 저장하는 편이 옳다. | |
부팅 시 컨테이너 자동실행 | 서버가 꺼졌다 다시 시작될 때 컨테이너가 자동 시작되게끔.
rc.local 안에 다음의 내용을 담아준다.#!/bin/bash
docker start $(docker ps -a -q) # 모든 컨테이너 실행.
|
vi /etc/rc.local
chmod 755 /etc/rc.local systemctl enable rc-local.service systemctl start rc-local.service |
이미지 관련
과정 | 설명 | 방법 |
---|---|---|
이미지 확인 | 이미지리스트를 본다.
용량과 태그, ID, 생성날짜, 크기를 볼 수 있다. |
docker images |
이미지 삭제 | 이미지에서 파생된 컨테이너를 삭제해야 삭제할 수 있다.
컨테이너가 있어 삭제가 안될 경우, -f 옵션으로 컨테이너까지 삭제. |
docker rmi 이미지:태그 |
모든 이미지 삭제 | docker rmi $(docker images -q) | |
이미지 히스토리 | 이미지의 변경 히스토리를 조회한다. | docker history 이미지:태그 |
컨테이너 관련
과정 | 설명 | 방법 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
생성 | 가능하면 옵션들은 이미지 이름 앞에 두는 편이 좋다.
로컬에 이미지가 없으면 자동으로 이미지를 받아온다. |
docker run 옵션 이미지이름:태그 | ||||||||||||||||
실행 | 이미 만들어진 컨테이너가 종료되었을 때 다시 실행한다. | docker start 컨테이너 | ||||||||||||||||
종료 | 도커를 재시작 할 때 도커 내부에서 서비스도 함께 종료된다.
systemctl apache2 start, service start mysql와 같은 명령으로 서비스를 실행해주어야 한다. |
docker stop 컨테이너 | ||||||||||||||||
현재 실행 컨테이너 확인 | -a 옵션을 붙이면 종료된 컨테이너도 볼 수 있다. | docker ps | ||||||||||||||||
컨테이너에서 파일 꺼내기 | 컨테이너에서 파일을 꺼낸다. | docker cp 컨테이너:경로 호스트경로
docker cp hello:/etc/file.conf ./ # 현재경로로 컨테이너의 파일을 꺼낸다. | ||||||||||||||||
변경파일 확인 | 컨테이너가 실행되며 변경된 파일목록 출력.
기준은 컨테이너를 생성한 이미지 기준. A: 추가된 파일 C: 변경된 파일 D: 삭제된 파일 |
docker diff 컨테이너 | ||||||||||||||||
이미지로 저장 | 변경사항을 이미지로 생성한다.
예시) docker commit -a "id8436" -m "JHwiki" 94b5dde4a907 id8436/jhwiki |
docker commit 옵션 컨테이너 이미지:태그
이미지, 태그는 소문자로만 가능하다. | ||||||||||||||||
도커허브에 올리기 | docker login 을 입력하면 ID, PW를 입력하게 된다.
|
과정 | 설명 | 방법 |
---|---|---|
호스트에서 컨테이너로 | 호스트의 파일을 컨테이너로 옮긴다. | docker cp 호스트경로 컨테이너:컨테이너경로 |
컨테이너에서 호스트로 | 컨테이너의 파일을 호스트로 옮긴다. | docker cp 컨테이너:컨테이너경로 호스트경로 |
저장공간 사용
과정 | 설명 | 방법 |
---|---|---|
이미지 올리기 | 레지스트리 서버에 이미지를 올린다.
192.000.000.000:포트번호 형태로 개인저장소에 올라간 이미지를 받아올 수도 있다. |
docker push |
이미지 받기 | 서버에서 이미지를 받는다.
localhost:포트번호 형식으로 개인저장소에 올릴 수도 있다. |
docker pull 레지스트리URL/이미지:태그 |
컨테이너에 접속하기
컨테이너 내부로 접속한다.
docker exec -it 컨테이너명 /bin/bash