sudo apt-get remove docker docker-engine docker.io containerd runc
가장 간단하다고 생각되는 apt 를 사용해서 docker를 설치하겠다.
다음의 명령어들을 통해서 도커레포지토리를 등록한다.
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
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
만약 위 명령어에서 에러가 발생한다면 아래의 링크를 참조해 문제해결을 시도해 볼 수 있습니다. apt update docker.com Release 404 not found
다음의 명령어들을 통해서 도커엔진을 설치한다.
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
설치가 완료된 후 원한다면 추가적인 설정을 할 수 있다
도커는 기본적으로 root 권한이 필요한데 sudo 명령어 없이 사용자가 도커를 실행시킬 수 있게 해주는 명령어이다.
또한 부팅시에 자동으로 실행 되게 끔 하는 명령어이다.
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
도커허브에 등록되어 있는 기본 이미지중 하나인 busybox 이미지를 사용해 간단한 컨테이너를 실행해 본다.
# 만일 wsl 환경에서 실행하고 있다면 먼저 아래의 명령어로 도커를 실행시켜줘야한다.
sudo service docker start
docker run busybox echo "This is it!"
위의 과정들에 문제가 없었다면 필요한 이미지를 자동으로 내려받고, “This is it!” 이라는 텍스트를 출력할 것이다.
이제 도커를 활용해 컨테이너 이미지를 빌드하고, 실행해보자.
const http = require('http');
const os = require('os');
console.log("Kubia server starting...")
const handler = function(request, response) {
console.log("Received reqest from " + request.connection.remoteAddress);
response.writeHead(200);
response.end("You've hit " + os.hostname() + "\n");
};
const www = http.createServer(handler);
www.listen(8000);
FROM node:16
ADD app.js /app.js
ENTRYPOINT ["node", "app.js"]
docker build -t kubia .
docker images
#REPOSITORY TAG IMAGE ID CREATED SIZE
#kubia latest b563ba57de58 12 minutes ago 910MB
docker run --name kubia-container -p 8080:8000 -d kubia
docker ps
#CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
#1a47fb7aaa27 kubia "node app.js" 10 minutes ago Up 10 minutes 0.0.0.0:8080->8000/tcp, :::8080->8000/tcp kubia-container
You've hit 1a47fb7aaa27
를 출력하는 화면이 뜰 것이다!docker stop kubia-container
docker rm kubia-continer
다른 컴퓨터에서도 이미지를 다운받고 실행할 수 있게, 이미지 저장소에 이미지를 푸쉬해보자
#with version "latest"
docker tag kubia <docker_id>/kubia
docker login
#도커 아이디/패스워드 입력
docker push <docker_id>/kubia
docker run -p 8080:8000 -d <docker_id>/kubia
마르코 룩샤, ⌜쿠버네티스 인 액션⌟, 강인호*황주필*이원기*임찬식, MANNING, 2020.03.31, 843