Docker (14) 썸네일형 리스트형 이미지 저장소 [정리] 공식 이미지 저장소DockerHub 계정 생성hub.docker.com 에서 계정을 생성DockerHub private repository 생성docker hub 로그인 후 repository 탭에서 private repository를 생성repo 명 : test이미지 빌드# 아무 Dockerfile이 있는 위치에서 수행docker build -t ****/test:0.0.1 . 💡 docker tag 명령을 통해서 이미지 태그만 추가할 수도 있음DockerHub 로그인docker login -u **** -p **** 💡 도커 엔진은 기본적으로 private 원격 저장소 로그인 시 ~/.docker/config.json 경로에 로그인 패스워드 정보를 저장함. 하지만 해당 패스워드는 암호화 된 것.. Docker Compose 구성해보기 [정리] Docker Compose 구성해보기DB(MySQL) 서버와 해당 DB의 유저 리스트를 조회하는 WebApp을 개발하여 Compose로 실행해본다.DB 서버는 기존의 my-mysql 이미지를 사용한다.API Server 컨테이너 만들기프로그램 작성db_controller.pyimport jsonfrom os import getenvimport pymysqldef get_data(): conn = pymysql.connect( host=getenv("MYSQL_HOST"), port=int(getenv("MYSQL_PORT")), user=getenv("MYSQL_USER"), password=getenv("MYSQL_PASSWORD"), .. 나만의 이미지 만들기 [정리] 나만의 이미지 만들기도커는 이미지 빌드 시 레이어 기술을 사용함.레이어 구성 시 중복 데이터를 줄여 저장 효율을 극대화할 수 있음.레이어 캐시 기능을 통해 빌드 시 불필요한 작업이나 다운로드를 방지할 수 있음.RUN, COPY, ADD 명령을 기준으로 레이어가 생성됨실습 컨테이너 일괄 삭제docker rm -f `docker ps -aq`1. DockerfileDockerfile 정의를 통해 이미지를 원하는 형태로 빌드할 수 있음Dockerfile 작성~/work/DockerfileFROM ubuntu:22.04RUN apt update && \\ apt install -y mysql-serverCOPY mysql-bootstrap.sh /tmpCMD ["./tmp/mysql-bootstrap.sh.. 다양한 도커 이미지 실행해보기 [정리] mysqldocker run -itd --name my-mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0.35docker exec -it my-mysql mysql -uroot -proot -e "show databases"pythondocker run -itd --name my-python python:3.10-busterdocker exec -it my-python python --version2048docker run -itd --name my-2048 -p 8888:80 alexwhen/docker-2048:latest 볼륨 [정리] 볼륨컨테이너는 기본적으로 내부에서 생성된 모든 파일은 쓰기 가능한 컨테이너 레이어에 저장함이는 다음을 의미.컨테이너가 삭제되면 데이터도 같이 삭제됨다른 프로세스에서 필요한 경우 데이터를 가져오는 것이 어려움컨테이너의 쓰기 레이어는 호스트 시스템과 긴밀하게 연결되어 있음. 때문에 데이터를 다른 곳으로 쉽게 이동할 수 없음.컨테이너 쓰기 레이어에 데이터를 쓰기 위해서는 스토리지 드라이버가 필요함. 스토리지 드라이버의 사용은 Linux 커널 사이의 추상화 계층이 추가되어 성능 저하를 일으킴.볼륨 사용 시 호스트 시스템에 직접 데이터를 쓰기 때문에 이러한 오버헤드가 없음데이터를 유지하는 방법은 크게 3가지 방식이 있음volume : 호스트 파일 시스템의 일부에 저장됨(/var/lib/docker/volumes/.. 컨테이너 포트 포워딩 [정리] 컨테이너 포트 포워딩도커는 iptables의 NAPT 기능을 통해 트래픽 제어를 한다. 이를 이용해서 단일 ip로 여러 개의 컨테이너에 대한 트래픽 1:N 매핑이 가능하다.실습 컨테이너 일괄 삭제docker rm -f `docker ps -q --filter name=my-ubuntu*`컨테이너 생성docker run -itd --name my-ubuntu -p 1234:1234 -p 5000:8080 -p 3000:3333 ubuntu:22.04docker run -itd --name my-nginx -p 8888:80 nginx:latest컨테이너 포트 정보 확인docker psdocker port my-ubuntudocker port my-nginx컨테이너 접근 확인nc -v localhost 88.. 네트워크 구성 확인 & 생성 [정리] 도커 네트워크 리스트docker network ls네트워크 유틸리티 도구 net-tools 설치net-tools는 유닉스 혹은 리눅스 시스템에서 네트워크 관련한 다양한 도구들이 포함된 패키지.ifconfig : 네트워크 인터페이스 관련 작업 도구netstat : 네트워크 연결, 라우팅 테이블, 인터페이스 통계 등의 작업 도구arp : ARP 캐시 관련 작업 도구ping : 호스트 간의 네트워크 연결 테스트 도구traceroute : 목적지까지의 경로를 추적하고 각 라우터의 지연 시간을 표시하는 도구nslookup or dig : DNS 쿼리를 수행하여 호스트 이름과 IP 주소 간 상호 변환 해주는 도구네트워크 인터페이스(NIC) 확인ifconfig172.17.0.1 의 docker0 인터페이스가 생긴 것.. 이미지 & 컨테이너 [정리] 이미지docker 이미지는 이미지 레지스트리에서 가져오게 되는데 기본적으로 https://hub.docker.com 에서 가져옴.이미지 가져오기(다운로드)docker pull ubuntu:22.04이미지 확인docker images이미지 삭제docker image rm ubuntu:22.04# ordocker rmi ubuntu:22.04 컨테이너 실행pull 명령을 통해 다운로드 받은 이미지 혹은 본인이 빌드한 이미지를 기반으로 컨테이너를 생성할 수 있다.로컬에 존재하지 않지만 도커 레지스트리(docker hub)에 존재할 경우 자동으로 pull을 수행한 뒤에 해당 이미지로 컨테이너를 생성한다.옵션 확인docker run 시 적용할 수 있는 많은 옵션들이 있는데 아래 명령을 통해 옵션들을 확인할 수 .. 이전 1 2 다음