10년 전만 하더라도 Cloud를 이용한 Virtual Machine 또는 Docker 컨테이너 기술이 없었기 때문에 만약 신입사원이 회사아 입사하면 서버 세팅만 하더라도 1주일은 잡아 먹기 일쑤였다. 그 과정에서 OS 종류나 버전이 맞지 않을 경우 실행이 되지 않는 경우도 종종 발생하였다.
하지만 Docker 컨테이너 기술이 만들어지고 실제 서버가 동작할 수 있는 모든 부분들이 Docker Image에 세팅이 되어 있고 그 파일만 건네주면 쉽게 서버 구축이 가능한 시대가 왔다.
심지어 이 Docker 기술은 가볍고 리소스 낭비도 크게 줄일 수 있는 여러 장점이 있어 Docker 기술이 많이 떠오르고 있다.
- Docker는 작동 하는 컴퓨터의 커널을 공유하기 때문에 따로 설치할 필요가 없어 무게가 가벼워진다.
- Docker Image를 통해 원하는 서버를 구축할 수 있다.
- Docker Image를 공유하기를 원하면 Docker Hub를 통해 이미지를 업로드하여 쉽게 공유가 가능하다.
apt-get update
apt-get install ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 1. docker build
docker build -t <Image name> .
# 2. docker 실행
docker run -d -p <서버 접근 포트>:<Container 타켓 포트> --name <Container_Name> <Container_Image>
# 3. docker 컨테이너 내부 접근
docker exec -it <Container ID> /bin/bash
# 4. docker ps 및 image 삭제
docker rm <Container ID>
docker rmi <Container ID>
# 5. docker compose 설치
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker compose version
# 6. docker network 만들기 (docker compose 통신)
docker network create <network name>
# 7. docker ip 검색
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container-name>