title: docker-install
date: 2019-01-22 23:01:45
Docker
- 개발자 및 시스템 관리자가 컨테이너를 사용하여 응용 프로그램을 개발, 배포 및 실행하가위한 플랫폼
- 컨테이너화 : Linux 컨테이너를 사용하여 응용 프로그램을 배포하는 것
- 컨테이너 : 실행시 이미지가 메모리에 저장되는 인스턴스(상태가 있는 이미지 또는 사용자 프로세스)
- 이미지: 실행가능한 패키지- 어플리케이션 실행에 필요한 코드, 런타임, 라이브러리, 환경 변수 그리고 설정 파일들..
- LXC라고하는 리눅스의 기능을 사용-> 추후 runC로 대체
- LXC(리눅스 컨테이너)
- 단일 컨트롤 호스트 상에서 여러 개의 고립된 시스템(컨테이너)들을 실행하기 위한 운영 시스템 레벨 가상화 방법
- 리눅스/다른 컨테이너와 호스트 시스템의 커널 공유유
- 다른 실행 파일보다 더 많은 메모리를 사용하지 않음
- 개별 프로세스를 실행하여 가벼움
- https://ko.wikipedia.org/wiki/LXC
- 버전 : Community Edition (CE) / Enterprise Edition
- How is Docker different from a virtual machine?
설치 - Ubuntu / Docker CE
- 수동 설치는 아래 사이트 참고
- https://docs.docker.com/engine/install/ubuntu/
이전 버전 삭제
- 설치 전 이전 버전 삭제
sudo apt-get remove docker docker-engine docker.io containerd runc
설치 준비
// 패키지 업데이트
sudo apt-get update
// 설치
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
// 도커 GPG키 등록
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
// 레퍼지토리 설정
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
설치
// 패키지 업데이트
sudo apt-get update
// 최신버전 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
// 설치 테스트
sudo docker container run hello-world
삭제
docker 삭제
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io
관련 파일 삭제
- images, containers, volues 전체 삭제
$ sudo rm -rf /var/lib/docker $ sudo rm -rf /var/lib/containerd
Docker 사용자 등록
- Docker 데몬은 tcp 포트 대신 유닉스 소켓을 사용 -> 유닉스 소켓은 root 소유 -> 일반 유저는 사용 불가 -> root를 제외한 다른 유저는 sudo 를 함께 사용해야함 -
- docker ce를 설치하면 docker 그룹이 자동으로 생성 되며 등록된 유저는 없음
사용자 등록
sudo usermod -aG docker $USER
newgrp docker
// 확인
docker run hello-world
// 아래 에러가 발생시
WARNING: Error loading config file: /home/user/.docker/config.json -dockdfdfdf
stat /home/user/.docker/config.json: permission denied
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
// .docker 폴더를 찾을수 없다는 에러 발생시 폴더 생성
mkdir .docker
// 재 부팅 후 docker 서비스가 자동 시작 안될 때
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
기타
```
// 아래 에러 발생시
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1": dial unix /var/run/docker.sock: connect: permission denied
// centos8!!!
// 아래 명령어 실행 후 재 로그인
$ sudo usermod -aG docker ${USER}
$ sudo chown root:docker /var/run/docker.sock
```
참고
'linux' 카테고리의 다른 글
[Docker] mariadb 및 utf-8 설정 (0) | 2021.03.20 |
---|---|
[centos] ssh- 패스워드 사용하여 로그인 (0) | 2021.02.16 |
[Ubuntu] MSI GF63 8RC Windows/Ubuntu Install (0) | 2019.05.30 |
[Ubuntu] 우분투 설치 프로그램들 (0) | 2019.05.29 |
[Git] Git / Ubuntu 설치 (0) | 2019.05.29 |