💡 필요 시 이전 버전 제거 후 진행
$ sudo apt-get remove docker docker-engine docker.io containerd runc
$ sudo apt-get update
$ sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ apt-cache madison docker-ce
$ sudo apt-get install docker-ce=5:20.10.11~3-0~ubuntu-bionic docker-ce-cli=5:20.10.11~3-0~ubuntu-bionic containerd.io
$ sudo docker run hello-world
$ docker version
$ sudo usermod -aG docker $USER
$ sudo service docker restart
# Docker engine, cli 및 패키지 제거
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io
# 이미지, 컨테이너 및 볼륨 삭제
$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd
$ wget https://github.com/docker/getting-started/archive/refs/heads/master.zip
app 폴더 하위 package.json, src, pec 존재
package.json과 동일한 폴더 하위에 Dockerfile 파일 생성
$ vi Dockerfile
# syntax=docker/dockerfile:1
FROM node:12-alpine
RUN apk add --no-cache python3 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
컨테이너 이미지 빌드
$ docker build -t getting-started .
이미지 확인
$ docker images
$ docker run -dp 3000:3000 getting-started
$ docker ps
$ docker info
build.gradle에 아래 항목 추가
plugins {
id 'war' // war 지정
}
archivesBaseName = 'docker-test' // war file 이름
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
명령어 입력
$ ./gradlew build -x test
생성된 war file을 ubuntu로 복사
Docker 이미지를 만들기 위한 스크립트 파일
ubuntu에서 생성
$ vi DockerFile
FROM openjdk:8-jre-slim
WORKDIR /app
COPY ./docker-test-0.0.1-SNAPSHOT.war .
ENTRYPOINT ["java","-jar","-Dserver.port=8084","docker-test-0.0.1-SNAPSHOT.war"]
docker build [OPTIONS] PATH | URL | -
# docker build -t {dockerhub repository:tag} {DockerFile path}
$ docker build -t testrepo/docker-test:0.1 .
$ docker images
$ docker run --rm -d -p 8080:8084 --name docker-test testrepo/docker-test:0.1
-d
옵션 :: 컨테이너를 백그라운드로 실행-p 84:8084
:: 호스트의 8080번 포트와 컨테이너의 8084번 포트를 연결하고 외부에 노출http://<호스트 IP>:8080
접속 시 컨테이너의 8084번 포트로 접속됨$ docker ps
# curl {ip}:{port}
## 3.35.53.49:84로 접속 후 UI 확인
$ curl 3.35.53.49:84
$ docker logs -f {CONTAINER ID}
$ docker stop {CONTAINER ID}
$ docker rmi {IMAGE ID}