일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ConnectedHomeIP
- homebridge
- 공모주
- 매터
- MQTT
- 오블완
- 코스피
- 해외주식
- cluster
- Bestin
- Python
- Apple
- Home Assistant
- Espressif
- 홈네트워크
- matter
- RS-485
- 배당
- SK텔레콤
- 애플
- 미국주식
- 나스닥
- 월패드
- raspberry pi
- 파이썬
- 국내주식
- 현대통신
- esp32
- 힐스테이트 광교산
- 티스토리챌린지
- Today
- Total
YOGYUI
Raspberry Pi - Docker 설치하기 본문
Install Docker on Raspberry Pi (Raspbian OS)
컨테이너(Container) 솔루션 중 가장 널리 사용되는 Docker는 Raspbian에 번들로 포함되어 있지 않아 사용자가 수동으로 설치해줘야 한다
DevOps 플랫폼 중 하나인 JFrog 공식 사이트에 설치 방법이 자세히 소개되어 있어 한번 따라해봤다
https://jfrog.com/connect/post/install-docker-compose-on-raspberry-pi/
※ Raspberry Pi 4 Model B Rev 1.2 - 4GB RAM, Raspbian GNU/Linux 10 (buster) 환경에서 진행
1. Update & Upgrade System
(뭔가를 새로 설치할 때는 언제나 그렇듯이) 터미널(LXTerminal 등)에서 다음 두 명령어 실행
sudo apt-get update
sudo apt-get upgrade
평소에 틈틈이 안해뒀으면 시간이 상당히 많이 소요된다
2. 도커 설치 스크립트 다운로드 (CURL)
curl 명령어로 get.docker.com URL의 스크립트(도커 설치 쉘 스크립트)를 get-docker.sh 파일로 다운로드받는다
curl -fsSL https://get.docker.com -o get-docker.sh
다운로드받은 쉘스크립트를 실행해준다
sudo sh get-docker.sh
정상적이라면 다음과 같은 메시지와 함께 설치가 완료된다 (2022년 2월 18일 기준)
pi@raspberrypi:~ $ sudo sh get-docker.sh
# Executing docker install script, commit: 93d2499759296ac1f9c510605fef85052a2c32be
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c curl -fsSL "https://download.docker.com/linux/raspbian/gpg" | gpg --dearmor --yes -o /usr/share/keyrings/docker-archive-keyring.gpg
+ sh -c echo "deb [arch=armhf signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/raspbian buster stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends docker-ce-cli docker-ce >/dev/null
+ version_gte 20.10
+ [ -z ]
+ return 0
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce-rootless-extras >/dev/null
+ sh -c docker version
Client: Docker Engine - Community
Version: 20.10.12
API version: 1.41
Go version: go1.16.12
Git commit: e91ed57
Built: Mon Dec 13 11:45:14 2021
OS/Arch: linux/arm
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.12
API version: 1.41 (minimum version 1.12)
Go version: go1.16.12
Git commit: 459d0df
Built: Mon Dec 13 11:43:32 2021
OS/Arch: linux/arm
Experimental: false
containerd:
Version: 1.4.12
GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.19.0
GitCommit: de40ad0
================================================================================
To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:
dockerd-rootless-setuptool.sh install
Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.
To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/
WARNING: Access to the remote API on a privileged Docker daemon is equivalent
to root access on the host. Refer to the 'Docker daemon attack surface'
documentation for details: https://docs.docker.com/go/attack-surface/
================================================================================
3. 비루트 계정 권한 설정 (Add a none-root user to the docker group)
비루트(일반) 계정에서도 sudo 명령어 없이 도커 이미지(컨테이너)를 실행할 수 있게 하기 위해 docker 그룹에 사용자를 추가해주자 (usermod 명령어 사용)
sudo usermod -aG docker ${USER}
여기서 ${USER}는 라즈베리파이 로그인시 사용한 계정명으로, 별다른 설정을 하지 않았으면 'pi'가 된다
pi 계정으로 로그인되어있다면 위 명령어는
sudo usermod -aG docker pi
와 같이 입력하면 되며, 다른 계정명으로 로그인했을 경우 ${USER}를 계정명으로 바꿔서 입력하면 된다
그룹이 제대로 할당되었는지 확인하려면 다음 명령어 실행
groups ${USER}
※ 로그아웃 혹은 시스템 재시작 후 적용된다
4. 설치 확인
제대로 설치되었는지 확인해보자
(만약 3. 항목의 비루트 계정 권한 설정을 하지 않았다면 모든 명령어 앞에 sudo를 붙여줘야 한다)
4.1. 버전 확인
터미널에서 다음 명령어를 입력
docker version
2022년 2월 18일 기준 20.10.12 버전이 최신 버전이다
4.2. 정보 확인
터미널에서 다음 명령어 입력
docker info
컨테이너 개수(Running/Paused/Stopped 상태), 이미지 개수, 커널 버전, OS 버전, CPU 아키텍처, 메모리 등 시스템 전반에 대한 다양한 정보를 확인할 수 있다
4.3. Hello World 컨테이너 실행
컨테이터가 제대로 동작하는 확인하기 위해 "hello-world" 이미지를 다운로드받은 뒤 실행해보자
다음 명령어를 실행하면 자동으로 다운로드받고 실행된다
docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
메시지를 확인할 수 있다
5. 부팅 시 실행 설정
도커 시스템이 라즈베리파이 실행 시 자동으로 실행될 수 있도록 systemctl 명령어를 사용해서 기능을 활성화해준다
sudo systemctl enable docker
컨테이너의 자동 시작 명령까지 지정하면 (restart policy 설정 방법: 링크) 특정 컨테이터를 라즈베리파이 보드 재시작 후에도 자동으로 실행할 수 있도록 할 수 있다
6. Docker-Compose 설치 (옵션)
만일 다중 컨테이너 서비스를 구축하고자 한다면 Docker Compose를 설치해줘야 한다 (Python 패키지로 설치)
Raspbian OS는 Python3가 번들로 설치되기 때문에 다음 명령어만 실행해주면 된다
sudo pip3 install docker-compose
설치가 완료된 뒤 docker-compose를 바로 실행할 수 있다
<설치 제거 방법>
sudo apt-get purge docker-ce
컨테이터, 이미지 등 잔존 데이터를 모두 삭제하고자 할 경우
sudo rm -rf /var/lib/docker
[참고]
https://phoenixnap.com/kb/docker-on-raspberry-pi
https://dev.to/elalemanyo/how-to-install-docker-and-docker-compose-on-raspberry-pi-1mo
'Hardware > Raspberry Pi' 카테고리의 다른 글
Raspberry Pi - OpenThread Border Router 구동하기 (nRF52840 + RCP) (0) | 2023.01.16 |
---|---|
Raspberry Pi - Guitar(Git GUI Client) 설치하기 (0) | 2022.03.29 |
Raspberry Pi - Wireshark 설치하기 (0) | 2021.11.28 |
Raspberry Pi - Failed to execute child process "xterm" (No such file or directory) 해결하기 (0) | 2021.08.02 |
Raspberry Pi - Real VNC "Cannot currently show the desktop" 문제해결 (0) | 2021.07.30 |