Docker 14

[Docker] 13. 도커(Docker) Private 레지스트리 서버 구현

Private Registry? 도커에서 기본적으로 사용되고 있는 레지스트리는 공식 사이트인 도커 허브이다. 이미지를 푸시하거나 관리할땐 기본적으로 도커 허브에서 관리가 되고 있는데 이는 공개적인 사이트라 누구나 접근할 수 있다. 자체 서버에서 구현을 하거나 개인적으로 개발환경을 구성하고 싶을때 Private Registry 서버를 구현하여 개인 저장소에 이미지를 관리하면된다. Private Registry 구현방법 Private Registry 구현 방법 또한 이미지를 다운 받아 registry 서버를 만들면 된다. docker run -d -p {port}:5000 --name {containerName} registry #registry의 기본 포트는 5000번이다. #이미지의 기본 포트는 dock..

Docker 2022.01.03

[Docker] 12. 도커(Docker) 이미지 PUSH

PUSH? 도커에선 이미지를 원격 저장소에 PUSH하여 언제 어디서든 원격 저장소에 저장되어 있는 이미지를 불러와 사용할 수 있다. 저번 포스팅에서 빌드한 nginx 이미지를 Docker Hub이라는 원격 저장소에 푸시하여 이미지를 관리할 것이다. DOCKER PUSH https://hub.docker.com/ Docker Hub Container Image Library | App Containerization Build and Ship any Application Anywhere Docker Hub is the world's easiest way to create, manage, and deliver your teams' container applications. hub.docker.com docke..

Docker 2021.12.28

[Docker] 11. 도커(Docker) 이미지 빌드하기

이미지 빌드 도커에서의 이미지 빌드란 dockerfile이라는 설정파일을 만들어 그 안의 설정 내용을 기반으로 이미지를 생성하는 것을 말한다. dockerfile 예제로 dockerfile을 만들어 nginx를 빌드할 것인데, 이때 호스트에 임의로 만들었던 index.html파일을 복사해 이미지가 빌드되는 시점에 호스트에 만들었던 파일을 nginx의 html 경로에 파일을 복사하여 컨테이너 실행 시 호스트에서 만들었던 html파일이 실행되도록 하는 예제이다. 주의할 점은 이미지를 빌드할 때 디렉토리 하나를 만들어 그 디렉토리 안의 파일만 빌드되도록 하는것이 중요하다. 이 예제에서는 nginx_build디렉토리를 만들어 그 안에 파일들을 생성하였다. FROM - 사용할 이미지 COPY - 호스트의 파일을 ..

Docker 2021.12.27

[Docker] 10. 도커(Docker) 볼륨 마운트 하여 로컬 파일 공유

마운트? 물리적인 장치를 특정 디렉토리에 연결시켜주는 것을 말함. 도커에서 볼륨 마운트 옵션을 사용하여 호스트에 있는 특정 데이터나 폴더와 컨테이너를 마운팅하여 마운팅된 호스트 디렉토리와 컨테이너의 디렉토리가 매핑되어 도커의 생명주기와 관계없이 데이터를 영속성으로 저장할 수 있게된다. 볼륨 마운트 옵션 docker run -v {hostDirectory}:{containerDirectory}:{authority} authority ㄴ ro : 읽기 전용 ㄴ rw : 읽기 및 쓰기 -v옵션을 통해 호스트 디렉토리와 컨테이너 디렉토리를 특정 권한을 주고 마운팅 할 수 있다. nginx 컨테이너를 구축할 때 -v옵션을 사용하여 마운팅한 예제 명령어이다. 호스트의 /var/www 디렉토리와 nginx 컨테이너의..

Docker 2021.12.23

[Docker] 9. 도커(Docker) 환경변수 이용하여 서비스 구축하기

환경변수? 환경변수란 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임을 말한다. 환경변수 이용하여 서비스 구축 도커를 이용하여 서비스를 구축하는 시점에서 환경변수를 세팅하여 원하는 설정을 할 수 있다. 도커 허브에서 mysql을 검색하면 상세 설명에 이미지를 사용하는 법이 나와있다. docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag docker run 명령어를 통해 환경변수를 세팅할 수 있는데, -e 옵션을 통해 환경변수를 설정하겠다는 옵션과 MYSQL_ROOT_PASSWORD라는 서비스에서 사용되고 있는 환경변수에 값을 넣어주면 환경변수 세팅이 되는 것이다. 위 명령어는 초기 비밀번호에 대한..

Docker 2021.12.22

[Docker] 8. 도커(Docker) 이용하여 Jenkins(설치)

도커 강의 유튜브 영상을 보다가, 연습 문제를 풀어보는 강의가 있어서 풀어봤다. 문제는 1. 기존에 설치된 모든 컨테이너, 이미지를 모두 정지 및 삭제 2. 도커 명령어로 Jenkins 검색 3. 도커 명령어로 찾은 Jenkins 설치 4. Jenkins 포트로 접속하여 웹 서비스 열기 5. Jenkins 초기 비밀번호 찾아서 로그인하기 이렇게 있었는데, 지금까지 강의를 보면서 도커에 대해 이해도가 어느 정도 높아졌고, 명령어에도 익숙해져서 문제를 쉽게 풀었다. 문제 풀이 1. 기존에 설치된 모든 컨테이너, 이미지를 모두 정지 및 삭제 도커에 생성되어 있는 컨테이너를 모두 조회하는 명령어를 통해 컨테이너 존재 여부를 확인 후 해당 컨테이너 ID를 통해 컨테이너를 삭제하여 도커에 존재하는 컨테이너를 삭제하..

Docker 2021.12.18

[Docker] 7. 도커(Docker) 유용한 명령어

유용한 명령어 리스트 1. 포트포워딩으로 톰캣 실행하기 docker run -d --name {customContainerName} -p {port}:{port} {imageName} 2. 컨테이너 내부 셸 실행 docker exec -it {containerName} {shellPath} #it는 input할 terminal창을 달라는 옵션 3. 컨테이너 로그 확인 docker logs {containerName} #컨테이너가 실행될 때 출력을 logs에 담게됨. #컨테이너의 standardOut이나 standardError 로그가 담게됨. 4. 호스트와 컨테이너간 파일 복사 #시스템 내부의 파일이나 폴더를 컨테이너 내부 경로에 복사 docker cp {systemPath} {toContainer}:{..

Docker 2021.12.15

[Docker] 6. 도커(Docker) 이미지 레이어 구성 요소

전 글에서 도커의 이미지 정보는 레이어 단위로 쪼개서 저장한다고 설명하였다. 실제로 도커 명령어를 통해서 도커의 이미지 정보, 이미지의 레이어 정보를 어떻게 저장하고 관리하는지에 대해서 설명할 것이다. 도커 터미널 명령어 1. 도커 이미지 정보 확인 docker inspect {{image}} 2. 도커 이미지 저장소 위치 확인 docker info 3. 레이어 저장소 확인 root@server1-VirtualBox:/var/lib/docker/overlay2# ls docker info 명령어를 통해 도커 루트디렉토리와 레이어 스토리지 경로를 알 수 있다. 레이어 스토리지 디렉토리에 레이어 정보들이 있다. 4. 이미지 히스토리 확인 docker history nginx 도커 구성 요소 image 디렉토..

Docker 2021.12.13

[Docker] 5. 도커(Docker) 이미지 비밀 레이어

레이어(Layer)? 도커 이미지를 레지스트리에 저장할때 각각 쪼개서 저장을 하게 되는데 그 단위를 레이어라고함. 이미지 A를 통해서 이미지 B를 만들때 레지스트리에는 이미지 A의 레이어 A, B, C라는 이미지 정보가 이미 있기 때문에 추가로 다운로드 받지 않고 레이어 D만 추가한다. 그리고 이미지 A를 지운다 하더라도 이미지 B에서 레이어 A, B, C를 사용하고 있기 때문에 이미지 B에는 레이어 A, B, C의 이미지 정보는 남아있다. 위 세개의 이미지들은 A, B 레이어를 동일하게 사용하고 있다. C레이어는 다른 정보를 가지고 있는 레이어인데 만약 C이미지를 받고 다음에 D, E 레이어를 다운 받을 시엔 동일 레이어인 A와 B는 다운로드 받지 않고 C만 다운로드 받게 된다. 이처럼 똑같은 레이어는..

Docker 2021.12.13

[Docker] 5. 도커(Docker) 라이프 사이클 관련 명령어 정리

도커 라이프 사이클의 이해는 아래 글에 정리하였다. https://rthfickro3.tistory.com/43?category=1004393 [Docker] 4. Docker 라이프 사이클의 이해 Docker LifeCycle 도커의 라이프 사이클에 대한 그림이다. 이미지를 받고 컨테이너화 하여 실행시키기까지의 명령어 PULL - 레지스트리에서 도커 이미지를 가져오는 명령어 └PULL을 하여 이미지를 다 rthfickro3.tistory.com 라이프 사이클 명령어 1. 이미지 파일 다운로드 docker pull {imageName} 2. 실행중인 컨테이너 목록 확인 docker ps 3. 모든 컨테이너 목록 확인 (실행중이지 않은 컨테이너도 확인 가능) docker ps -a 4. 컨테이너 생성 명령..

Docker 2021.12.08