본문 바로가기

CI-CD/Docker

(8)
Docker- Network NetworkDocker network를 통해서 컨테이너를 연결하고 다른 네트워크와는 격리할 수 있다. 기본적으로 bridge라는 이름의 기본 네트워크가 주어진다. 만일 run 명령을 실행할 때 컨테이너를 연결할 별도의 network를 명시해주지 않는다면 기본적으로 bridge 네트워크에 연결이 된다. 현재 존재하는 network들의 목록은 다음 명령어로 확인 가능하다.// docker network 목록 확인$ docker network ls 확인한 네트워크들 중에서 확인하고 싶은 네트워크가 있다면 다음 명령어로 확인 가능하다.// 네트워크 확인$ docker inspect [network 명] 예를 들어 두개의 컨테이너 (my_container1, my_container2)를 my_bridge라는 d..
Docker- Volume 볼륨이란 볼륨은 호스트 머신, 즉 사용자의 PC나 가상 머신과 같은 사용자의 컴퓨터를 의미한다. 볼륨을 사용하는 경우, 컨테이너 상의 어플리케이션과 호스트 머신의 폴더를 마운트 해줄 수 있다. 따라서 컨테이너 데이터를 저장하는 경우에 사용할 수 있다. 기존에는 컨테이너를 제거하는 경우 컨테이너에 포함된 데이터들도 모두 제거되지만, 볼륨을 통해 데이터를 호스트 머신에 유지할 수 있다. 한마디로 컨테이너 내부의 데이터를 외부로 마운트하여 컨테이너 내부에서 데이터의 수정이 일어나는 경우 볼륨이 걸린 호스트 머신에도 반영되게 하는 것이다. 볼륨 생성 $ docker volume create [생성할 볼륨 이름] $ docker volume create volume-test # volume-test라는 이름의 볼..
Docker- Docker Compose 도커컴포즈란? 도커 컴포즈를 통해서 동시에 여러개의 컨테이너를 생성하고 관리할 수 있다.예컨데 Docker compose 없이 wordpress 컨테이너와 mysql 컨테이너 두개를 생성하고 두 컨테이너를 연결하기 위해선 두 개의 run 명령어를 작성해야한다.$ docker run -d --name db mysql:8$ docker run -d --name app -p8080:80 --link db:mysql wordpress:latest 이후 필요에 따라 각각의 컨테이너에서 exec 명령어를 사용해서 필요한 환경변수등을 설정해줘야한다.$ docker exec -it db bash # mysql 컨테이너 진입... 환경변수 설정$ docker exec -it db app # wordpress 컨테이너 진..
Docker- Docker file 도커 이미지 생성 과정도커 파일을 통해서 이미지를 위한 설정을 정의해준다. 이후 도커 파일을 도커 클라이언트에게 전달하고, 클라이언트는 이를 도커 서버에 전달한다. 서버에 전달이 완료되면 이미지가 생성되게 된다.도커 파일- 도커 파일 생성도커 파일명은 반드시 Dockerfile로 해 주어야한다. 따라서 한개의 폴더에 하나의 Dockerfile만이 존재할 수 있다.# 베이스 이미지를 명시해준다. (OS)FROM ubuntu:latest# 도커의 변수를 설정해준다.ENV HELLO_UBUNTU "Ubuntu image install"# 도커이미지가 생성되기 전에 베이스 이미지 위에서 수행될 shell 명령어RUN apt-get updateRUN apt-get upgrade -yRUN apt-get insta..
Docker- redis 실행 서버 실행 및 redis cli 실행하기 # docker run -d redis # 백그라운드로 redis 서버 실행 # docker exec -it [redis 컨테이너 id | 컨테이너 이름] redis-cli # redis-cli 실행
Docker- 명령어 설치$ brew install --cask docker버전 확인$ docker -v // 도커 버전확인컨테이너 실행하기$ docker run -i -t ubuntu:22.04 //ubuntu 컨테이너 생성 및 컨테이너로 들어옴$ docker run -i -t -d --name=myweb ubuntu // -d 옵션을 통해서 백그라운드에서 실행 // --name으로 container 이름을 지정run 명령어를 사용할 때는 반드시 -i -t 명령어를 사용해야지 run 명령어를 정상적으로 사용할 수 있다. run 명령어로 컨테이너를 실행하고 나면 root@375ad454f161:/# 처럼 사용자 명이 변경된다. 컨테이너에서 기본 사용..
Docker -컨테이너와 이미지 도커 이미지 컨테이너는 프로그램을 실행하는데 필요한 설정이나 종속성을 갖고있다. 프로그램을 실행하는데 필요한 모든 것을 포함한 패키지이다. 컨테이너에는 실행 파일인 파일 스냅샷과 시작시 실행될 명령어가 내장되어있다. 이미지를 통해서 컨테이너를 만들고 이미지의 파일 스냅샷은 컨테이너의 하드디스크에 설치되고, 실행될 명령어는 컨테이너에서 실행된다. 도커 컨테이너 컨테이너 이미지는 런타임에 컨테이너가 되고 , 도커 컨테이너의 경우 도커 엔진에서 실행될 때 이미지가 컨테이너가 된다. 컨테이너는 소프트웨어가 주변 환경에 관계없이 균일한 작동을 보장하는 기술이다. 도커 컨테이너는 도커 이미지의 인스턴스이며, 프로그램을 실행한다. 결론 도커 이미지는 프로그램을 실행하는데 필요한 설정이나 종속성을 갖고 있으며, 도커 ..
Docker- 기본 개념 정리 docker hub: 프로그램들을 다운 받는 app store와 같은 곳. 이곳에서 image를 다운받을 수 있다. image: 어플리케이션 실행에 필요한 독립적인 환경을 포함하며, 소스코드, 라이브러리, 종속성, 도구 및 응용 프로그램을 실행하는데 필요한 기타파일을 포함하는 불변 파일. 클래스와 비슷한 개념이다. container: 이미지에 종속적인 계층으로 컨테이너를 생성하는 경우, 쓰기 가능한 레이어가 이미지 위에 추가된다. 각각의 컨테이너는 격리되어 서로에게 영향을 주지 않는다. 이미지가 클래스라면 컨테이너는 인스턴스에 해당한다. 하이퍼바이저 가상화 기술 각 하드웨어의 코어마다 가상의 게스트 os를 구동하는 방식. 기존 방식인 하나의 하드웨어에서 하나의 호스트 OS만으로 서버를 돌리면 안정적이긴 ..