[Docker] 기초 정리

|

## 도커 설치

1. virtual box 설치 - 네트워크 구성 - vm 만들기

  - virtualbox 다운로드 후 설치(virtualbox.org)

  - 환경설정(네트워크 구성)

  - 가상머신 만들기

2048 변경
20GB 변경
부팅순서 - 플로피 제거

 

CPU 개수 2개로 변경
NAT 네트워크 로 변경

 

 

2. vm에 ubuntu 20.04 설치하고 기본 환경 구성하기

  - ubuntu 20.04 설치(ubuntu.com) : LTS(Long Term Support version)

4096 으로 변경

 

ubuntu 다운받은 이미지 파일을 선택
확인 버튼을 누르면 환경구성은 끝

 

시작 버튼을 클릭하면 위와 같이 vm 이 실행되고 ubuntu가 설치가 된다

 

한국어 / ubuntu 설치 버튼 클릭

키보드 설정 그대로 - 디스크를 지우고 우분투 설치 - 타임존 서울

 

guru-ubuntu.excample.com / guru/work

 

- 여기까지 하면 설치가 되고 재시작을 물어봄

- 재시작 후 우측 상단에서 설정 버튼을 통해 [디스플레이] tab에 진입하여 화면 해상도를 변경해준다. 1280 * 960(4:3)

- 네트워크 구성

ipv4 탭에서 - 수동 / 주소, dns 위와 같이 입력 후 [적용] 버튼 클릭하면 네트워크가 구성된다.

- 바탕화면에서 우측버튼 클릭하면 `터미널 열기` 로 들어감(cmd)

- ip addr, hostn90me 클릭하면 정보 확인 가능

- 호스트 네임 변경: sudo vi /etc/hostname 입력 후 docker-ubuntu.example.com 으로 수정(putty 명령어 활용)

- 호스트 정보 추가 : sudo vi /etc/hosts 입력 후 

- ping -c 3 8.8.8.8 을 입력하여 통신이 잘되는지 확인(8.8.8.8 은 google의 dns)

- root password 설정 : 비밀번호(password)

비밀번호 설정
계정전환
text 부팅으로 수정
ssh 서버 설치(1)
ssh 서버 설치(2)
ssh 데몬 동작 확인(1)
ssh 데몬 동작 확인(2)

- 여기까지 하면 ubuntu 환경 구성은 완료

- exit 2번 입력 후 reboot 입력

 

- putty로 접속정보 입력 후 접속

계정정보 전환 / ip 확인 / 릴리즈 정보 확인

 

메모리 / 커널정보 확인
스냅샷 : 현재 시점을 저장, 언제든 되돌릴 수 있음

 

 

3. vm에 centos 설치하고 환경구성하기

 

 

4. ubuntu/centos server에 docker 설치하기

 

- https://docs.docker.com/engine/install/ubuntu/

 

* 다운로드 방법

- repository를 이용해서 설치 (외부 네트워크 O)

- download 후 직접설치 (외부 네트워크 X)

- script를 이용한 설치

 

// Install using the apt repository

// 설치 전 이전버전 삭제
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

// 요구프로그램 설치
guru@docker-ubuntu:~$ sudo apt-get update
guru@docker-ubuntu:~$ sudo apt-get install ca-certificates curl gnupg

// 인증서 저장
sudo 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
sudo chmod a+r /etc/apt/keyrings/docker.gpg

// url 등록
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" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
// docker engine 등록
sudo apt-get update

// 설치 가능 버전 확인
apt-cache madison docker-ce | awk '{ print $3 }'

// 특정 버전 설치
VERSION_STRING=5:20.10.24~3-0~ubuntu-jammy
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io -y

// 설치 정상적으로 되었는지 확인
guru@docker-ubuntu:~$ sudo docker version
Client: Docker Engine - Community
 Version:           20.10.24
 API version:       1.41
 Go version:        go1.19.7
 Git commit:        297e128
 Built:             Tue Apr  4 18:21:03 2023
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.24
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.19.7
  Git commit:       5d6db84
  Built:            Tue Apr  4 18:18:48 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
guru@docker-ubuntu:~$

 

- 계정 추가 및 관리자 권한 부여

guru@docker-ubuntu:~$ su - // root 로 접속
암호:
root@docker-ubuntu:~# usermod -a -G docker guru // guru 관리자 권한 부여
root@docker-ubuntu:~# su - guru
guru@docker-ubuntu:~$ docker ps //  권한 잘 부여되었는지 확인
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
guru@docker-ubuntu:~$

 

5. windows 10에 dockerDesktop 설치하기

 

# cat app.js
const http = require('http');
const os = require('os');
console.log("test server is running...");
var handler = function(req, res) {
	res.writeHead(200);
    res.end("Container Hostname: " + os.hostname() + "\n");
};
var www = http.createServer(handler);
www.listen(8080);

# cat Dockerfile
FROM node:12 // node환경을 설치하고
COPY app.js /app.js // ??
ENTRYPOINT ["node", "app.js"] // 만들어놓은 app.js를 저장하고 실행할 수 있는 환경을 만듬

'IT Infra' 카테고리의 다른 글

[Ubuntu] SELinux 설치  (0) 2023.06.16
리눅스(Linux), 커널(Kernel), 우분투(Ubuntu)  (0) 2023.06.15
PUTTY  (0) 2023.03.31
JWT(JSON Web Token)  (0) 2023.03.29
개발 환경 구성  (0) 2023.03.29
And