▶︎ 도커 설치
‣ Ubuntu
- 설치환경 :
Ubuntu:20.04
1. 커널버전 확인
uname -r
2. 패키지 설치
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
3. 도커 gpg 키 등록 Deprecated
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
위 방법은 Deprecated 된 방법이다.
apt-key가 deprecated 됨으로 아래 방법으로 /etc/apt/trusted.gpg.d/
경로에 gpg 키를 등록해줘야 한다.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
4. 도커 레포지토리 추가
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
5. 패키지 업데이트
apt-get update
6. 도커 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io
7. 도커 서비스 작동 확인
systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-05-09 09:18:46 UTC; 16s ago
8. 현 사용자 ID를 docker group 에 포함
sudo usermod -aG docker ${USER}
9. 도커 버전 확인
docker -v
‣ CentOS
- 설치환경 :
CentOS 7
1. yum-utils 설치
sudo yum install -y yum-utils
2. Stable repository 추가
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3. 패키지 목록에서 도커 조회
yum list | grep "docker*"
4. 도커 설치
sudo yum -y install docker-ce docker-ce-cli containerd.io
5. 도커 서비스 시작
sudo systemctl enable --now docker.service
sudo systemctl restart docker.service
6. 현재 유저 도커 그룹에 추가
sudo usermod -aG docker ${USER}
▸ Arch
1. 시스템 패키지 최신 상태로 업데이트
sudo pacman -Syu
2. 도커 설치
sudo pacman -S docker
3. Docker 서비스 시작
sudo systemctl enable --now docker
4. Docker 그룹에 사용자 추가
sudo usermod -aG docker $USER
newgrp docker
5. 도커 컴포즈 설치
sudo pacman -S docker-compose
▶︎ 도커 컴포즈 설치
- 최신 버전은 docker-compose 공식 깃허브에서 확인하도록 하자
docker-compose 설치
# Docker Compose 파일 다운로드
sudo curl -L "https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 실행 권한 수정 및 심볼릭 생성
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
다음 명령 실행 시 버전 확인이 가능하면 성공
docker-compose --version
▶︎ 셸 스크립트로 설치
- 도커 설치 과정을 셸 스크립트로 작성하여 자동화해보기.
1. install-docker.sh 파일에 아래 내용 붙여넣기
#!/usr/bin/env bash
## INFO: https://docs.docker.com/engine/install/ubuntu/
set -euf -o pipefail
#### Require variables
DOCKER_USER=${USER}
DOCKER_COMPOSE_VERSION=v2.5.0
#
# OS 체크
OS_CHECK="$(cat /proc/version)"
if [[ "${OS_CHECK}" =~ "ubuntu" ]] || [[ "${OS_CHECK}" =~ "Ubuntu" ]]; then
# 1. Install dependencies
sudo apt-get update && sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
echo -e "1. Install dependencies\n"
# 2. Add Docker’s official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
echo -e "Add Docker's official GPG Key\n"
# 3. Set up the stable repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
echo -e "3. Set up the stable repository"
# 4. Install Docker CE
sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io
echo -e "4. Install Docker CE\n"
# 5. Use Docker without root
sudo usermod -aG docker ${DOCKER_USER}
echo -e "5. Use Docker without root\n"
# 6. Download and install
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
echo -e "6. Download and install\n"
# 7. start docker service
systemctl enable --now docker.service
systemctl restart docker.service
echo "7. start docker service"
elif [[ "${OS_CHECK}" =~ "centos" ]]; then
# 1. Install dependencies
sudo yum -y install yum-utils
echo -e "1. Install dependencies\n"
# 2. Set up the docker repository
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
echo -e "2. Set up the docker repository\n"
# 3. Install docker ce
sudo yum -y install docker-ce docker-ce-cli containerd.io
echo -e "3. Install docker ce\n"
# 4. restart docker.service
sudo systemctl enable --now docker.service
sudo systemctl restart docker.service
echo -e "4. restart docker.service\n"
# 5. Added docker group
sudo usermod -aG docker ${USER}
echo -e "5. Added docker group\n"
elif [[ "${OS_CHECK}" =~ "arch" ]]; then
# 1. Update Package
sudo pacman -Syu
# 2. Install Docker CE
sudo pacman -S ocker
# 3. Start docker service
sudo systemctl enable --now docker
# 4. Install docker compose
sudo pacman -S docker-compose
else
echo "check OS version is ubuntu or centos"
fi
2. 스크립트에 실행 권한 부여하고 실행
sudo chmod u+x ./install-docker.sh
bash install-docker.sh
▶︎ 폐쇄망인 경우?
- Docker
- Docker Compose
도커를 서버에 설치해야 하는데, 폐쇄망이라 네트워크 사용이 불가능하다면 도커를 사용할 수 있는 방법은 없는걸까?
폐쇄망의 경우에는 도커를 실행할 수 있는 바이너리 파일들을 USB 같은 이동식 디스크에 미리 설치하여 서버로 옮기면 된다.
참고로 아래 설치 과정은 Ubuntu,CentOS 모두 동일한 과정으로 진행된다.
‣ 설치 방법
- 위 링크에서 필요한 바이너리 파일들을 서버에 옮겨놓은 상태이어야 한다.
1. 도커 파일이 이미 존재하기에 파일을 옮기고 도커를 실행하는 명령어 사용
echo "Setting docker withoput internet ..."
cp -R ~/Downloads/docker-18.09.0.tgz ${HOME}
cd ${HOME}
tar -xzf docker-18.09.0.tgz
sudo cp -R docker/* /usr/bin
sudo dockerd &
echo "Docker setting complete!"
폐쇄망에서 도커를 실행하기 위해서는 기존에 사용하던 service
나 systemctl
명령어 대신 dockerd &
명령을 통하여 도커를 실행시켜야 한다.
2. 이어서 도커 컴포즈또한 다운로드된 파일이 있기 때문에 cp 명령어로 복사 해주자.
echo "Setting docker-compose..."
cd $HOME
sudo cp -R docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
echo "docker-compose download complete!"
▶︎ 도커 삭제
설치한 도커 관련 패키지 삭제
sudo apt-get purge -y docker-engine docker docker.io docker-ce && \
sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce
시스템 내에 남아있는 모든 도커 이미지 및 컨테이너 볼륨 삭제
sudo rm -rf /var/lib/docker /etc/docker
sudo rm /etc/apparmor.d/docker
sudo groupdel docker
sudo rm -rf /var/run/docker.sock
sudo rm -rf /usr/bin/docker && sudo rm -rf /usr/bin/docker-compose