Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- mp4fpsmod
- pytest
- kotlin
- JanusWebRTCServer
- addhooks
- 코루틴 빌더
- 티스토리챌린지
- terminal
- JanusWebRTCGateway
- preemption #
- 개성국밥
- 겨울 부산
- PersistenceContext
- VARCHAR (1)
- Value too long for column
- 코루틴 컨텍스트
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- 깡돼후
- tolerated
- table not found
- JanusWebRTC
- 오블완
- taint
- python
- Spring Batch
- JanusGateway
- vfr video
- PytestPluginManager
- 달인막창
- 자원부족
Archives
너와 나의 스토리
Docker image 생성 및 배포하기 본문
반응형
도커(Docker)란?
- 도커는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨터이너로 실행하고 관리하는 오픈 소스 프로젝트이다.
- 즉, 도커를 사용하면 개발에 필요한 환경(예: git, java 등이 설치된 환경)을 구축해 항상 같은 환경에서 개발할 수 있다.
"예제: ubuntu 환경에 git을 설치한 image를 생성하고 배포하자."
1. 기본 image를 받아오자.
docker run -it <image:tag> bash
- 예를 들어, 다음의 명령어로 ubuntu 환경의 이미지를 실행시킬 수 있다.
docker run -it ubuntu:latest bash
- 이제 우리는 ubuntu 환경을 사용하게 되었다.
- 여기에는 아직 git이 설치되어 있지 않다.
git version
<output>
bash: git: command not found
2. git 설치
- 이 우분투 환경 베이스에 git을 설치해보자.
- 먼저 apt-get부터 업데이트해준다.
apt-get update
- 그다음, git 설치
apt-get install git
- git이 잘 설치되었는지 확인해보자.
git --version
Note!
- 이 상황에서 해당 container를 나가면, 우리가 했던 모든 행위는 기록되지 않는다.
- exit 명령어로 container를 나갈 수 있다.
- $ exit
3. Container list 조회
- 새로운 terminal에서 다음의 명령어를 통해 현재 로컬 컨테이너 리스트를 보자.
docker ps
4. Container 저장(commit)
docker commit <Container Id> <repository name:tag>
- container id는 "docker ps" 명령어를 통해 얻은 컨테이너 리스트에서 확인할 수 있다.
- repository name은 자신이 해당 image를 저장할 respository의 이름을 말한다.
- Docker에 해당 repository를 생성하고 그 repository의 이름을 적으면 된다.
- 하나의 컨테이너에 여러 개의 이미지가 존재할 수 있는데
- tag는 버전같이 하나의 컨테이너에서 각각의 이미지를 식별할 tag를 설정하는 것이다.
- git에서 하나의 repository에 여러개의 branch(image)가 존재할 수 있는 것과 유사하다.
5. Image 배포(push)
- git에서 코드를 commit 후, push하는 것처럼 Docker에서도 똑같이 image를 commit 후, push 한다.
- 도커에 로그인을 한 후, 아래 명령어로 image를 배포하면 된다.
docker push <repo name:tag>
반응형
'개발' 카테고리의 다른 글
[Spring: JoinColumn/OneToMany] Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: NULL not allowed for column "BOARD_ID"; SQL statement: (0) | 2021.08.09 |
---|---|
[MySQL] Can't DROP 'key name'; check that column/key exists (0) | 2021.08.09 |
[GitHub WebHook] Webhook 설명 및 사용법 (0) | 2021.02.24 |
Appium 설치 및 사용하기 - 기본 설정&테스트 (0) | 2021.02.17 |
[Jenkins] Remote Access API로 Job 호출 (1) | 2021.02.09 |
Comments