묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
depends_on에 따른 컨테이너 실행 순서
services: my-server: build: . ports: - 8080:8080 depends_on: my-db: condition: service_healthy my-db: image: mysql environment: MYSQL_ROOT_PASSWORD: pwd1234 MYSQL_DATABASE: mydb volumes: - ./mysql_data:/var/lib/mysql ports: - 3306:3306 healthcheck: test: ["CMD", "mysqladmin", "ping"] interval: 5s retries: 10강의 자료대로 이렇게 작성했는데이렇게 설정하면 my-db가 healthy할 때 my-server 컨테이너를 실행한다고 이해했습니다.그런데 docker compsoe logs로 확인해 보면 my-server가 먼저 실행되고, 중간에 대기하는 거 같은데, 저는 애초에 my-server 컨테이너 실행이 늦춰지는 거라 생각했었거든요.healthcheck와 depends_on이 정확히 어떻게 동작하는 건가요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
실제 웹 서비스 배포 시 질문
안녕하세요 강사님! 저는 프론트엔드 개발자이고 현재 진행중인 사이드 프로젝트에서 Docker, AWS를 사용해서 Next.js 프로젝트를 배포하려고 합니다.머릿속으로 큰 그림을 그려봤을때, 강의에서 나오는 컨테이너 역할을 해주는 게 AWS EC2이고 https의 기본 포트는 443번이니까 실제 배포할때는 docker run -d -p 443:3000 my-web-server 이런식으로 포트가 맵핑돼야한다고 이해하고 있는데 제가 올바르게 이해하고 있는 게 맞을까요? 추가로 현재는 로컬에서 직접 docker run -d -p 80:3000 my-web-server를 실행하는데, 배포하게 된다면 이 명령어를 누가 실행시켜주는지도 궁금합니다..!
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
도커 volume 질문
안녕하세요,1.도커 이미지를 이서버 , 저서버 왔다가 하는 경우면도커 컨테이너?이미지? 안에 있는 volume에 db를 저장해놓는게 좋죠??(호스트 storage를 이용해 db를 저장할 수도 있다고 하셔서 질문 드립니다) 도커 컨테이너 volume 저장 공간은 원하는 만큼 조정 할 수 있나요 (최대 호스트 디스크 저장공간)?도커 사용이 처음이라 질문이 모호한점 양해 부탁드립니다..
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
HTTPS로도 받고 싶으면 docker compose에 443도 쓰면 될까요?
services: my-web-server: build: . ports: - 80:3000이게 자료 예시인데 HTTPS도 받으려면 ports 부분에 - 443:3000도 써 주면 되는 건가요?현업에선 어떤 식으로 하나요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
sql 볼륨 폴더 지우면 데이터베이스 데이터 날라가는거 아닌가요?
mysql_data 폴더 지우고 다시 폴더 만들면 데이터베이스 안에 있는 데이터가 다 날라가는거 아닌가요? 그럼 볼륨을 사용하는 이유가 없을거 같아서요
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
39강 도커파일 빌드 경로 질문이 있습니다.
[01:57] 에 상대경로로 .을 찍으라고 돼있는데요.그냥 절대경로 쓰는게 더 낫지 않나요?절대경로로도 동작하는데, 귀찮게 디렉토리 이동해야 하는 상대경로를 쓰는 이유가 궁금합니다.혹시 나중에 자동화할때 상대경로를 써야한다든지 등의 실무적인 이유가 있을까요?제가 모르는 큰 그림이 있는지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
도커파일 copy
폴더 복사가 안되서요. 여러번 해봤는데 이미지 새로 생성 안하면 변경이 안되나봐요. 새로 생성한 이미지로 해보면 my-app 이 생성됩니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
실무에서 docker compose up --build를 할 때
docker compose up --build 같은 명령어는 실무에서 보통기존 컨테이너를 중지한 다음에 하는 건가요? 아니면 실행 중인 상태에서 바로 저 명령어를 쓰는 편인가요?상관없나요?
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
mysql_data 폴더 내부에 다른 파일이 있는데도 잘 되는 경우
docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql 이 명령을 하기 전에 mysql_data 폴더는 만들어 놔도 되지만, 폴더 내부에 다른 파일이 있으면 안 된다고 이해했습니다. 그런데 바로 이전 '[실습] Docker로 MySQL 실행시켜보기 - 3 강의' https://jscode.notion.site/Docker-MySQL-3-f07a2d5a24d24bf184e78622e55a6d8c에서 비밀번호 바꿔 보는 테스트를 할 때, password123으로 컨테이너를 실행한 뒤, 컨테이너를 삭제한 후 mysql_data 폴더는 따로 삭제하지 않아서 mysql_data 내부엔 파일들이 있었을 텐데, 그 이후에 pwd1234로 바꿔서 컨테이너를 다시 생성할 때 오류가 안 났던 이유는 뭔가요?
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
도커 허브에서 postgres 버전 확인하는 법
도커 허브에 있는 postgres:latest인데https://hub.docker.com/layers/library/postgres/latest/images/sha256-c84595a367a3fe5a4d9dce011490da38c462190e6ac7afb7d2a4c49436c80656 이건 postgres 몇 버전인가요? 다른 Q&A 보니 postgres 버전 관련 얘기가 있어서 최신 postgres가 18버전인지, 그 이상이 나왔는지 보고 싶었는데 저 링크를 들어가도 어디서 확인해야 하는지 모르겠습니다. 그리고 newest는https://hub.docker.com/layers/library/postgres/14.20-alpine3.23/images/sha256-df852d122662b3a4ef0662daf3572ec3f6251924fbd2e44bc5d9d8ed252ae767 postgres:14.20-alpine3.23인데, 이건 14 버전인가요? postgres 18버전도 나온 거로 알아서 14라는 게 버전은 아닌 거 같은데, 어디서 버전을 확인할 수 있는지 궁금합니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
보충 자료와도 관련된 추가 내용
"[보충 자료] Docker로 PostgreSQL 실행시켜보기"에 관련 내용이 있기는 한데, 제가 이걸 못 보고 /var/lib/postgresql/data라고 썼다가 제대로 작동이 안 돼서 GPT에 물어보면서 해결했습니다. /var/lib/postgresql/data를 /var/lib/postgresql 이렇게만 바꿔도 오류는 발생하지 않는 것 같습니다. 보충 자료에 나온 것처럼 /var/lib/postgresql/<버전>/docker로 쓰는 거랑 완전히 같은 게 맞는지 확신은 안 되지만 강의 따라하면서 문제는 없었습니다. docker run -d -e POSTGRES_PASSWORD=password123 -p 5432:5432 -v D:\docker-postgresql/postgresql_data:/var/lib/postgresql postgres 위 명령어를 입력하면, 데이터들이 있는 호스트 디렉터리 주소는 아래와 같은 구조가 됩니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
현업에서 MySQL은 RDS와 도커 볼륨 중 어떤 걸 사용하나요?
아니면 MySQL을 사용할 때 도커와 RDS를 조합해서 사용할 수도 있나요? 현업에서 어떤 식으로 사용하는지 궁금합니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
노션 자료에 안 보이는 이미지가 있습니다
'[보충 자료] Windows에서 lsof, kill, sudo 명령어가 작동하지 않을 때 대처 방법'여기서 관리자 권한으로 실행 부분 이미지가 저렇게 보입니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
도커 허브에서의 latest가 가장 최신인 게 맞나요?
newest로 정렬했을 때 가장 최신인 건 trixie-perl이니 이게 latest여야 하지 않나 생각이 되는데 왜 latest가 따로 있는 건지 궁금합니다. 용량이 다른 걸 보니 다른 이미지 같은데, 최신으로 올라온 게 latest여야 하지 않나요? 어떤 이유인지 궁금합니다.
-
해결됨개발자를 위한 쉬운 도커
쿠버네티스 강의 언제 나오나요..
11월 초에 나온다고 하셔서 기다리고 있습니다.아직 완강하지 않았더라도 연재식으로라도 강의 올려주셨으면 좋겠어요
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
docker image ls 실행 시 나오는 내용이 다릅니다
윈도우의 Powershell 관리자 모드에서 실행했습니다.강의를 보기 전에 노션 학습 자료 먼저 예습하고 있었는데, docker image ls를 제가 실행해 보니 전혀 다른 내용으로 출력됩니다. 이건 운영체제 차이인가요 아니면 최근에 바뀐 건가요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
윈도우 볼륨 생성이 안됩니다.
윈도우(Windows) 환경으로 실습하시는 수강생분들 중에서볼륨이 제대로 생성되지 않는 분들은 아래 링크의 해결책을 참고해보세요!https://inf.run/7d8pW위 링크에 나와있는 방식대로 해결이 안 되실 경우 질문 게시판에 질문 남겨주시기 바랍니다:D위에 방법으로 더블 쿼터로 묶어도 해당 문제가 해결되지 않습니다.볼륨을 직접 생성해서 하는건 가능하지만, 해당방법으로도 해보고 싶은데 방법은 없는건가요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
섹션 4 FROM : 베이스 이미지 생성 openjdk:17-jdk not found
차례대로 따라가던 중 docker build -t my-jdk17-server . 를 실행하면 ERROR: failed to build: failed to solve: openjdk:17-jdk: failed to resolve source metadata for docker.io/library/openjdk:17-jdk: docker.io/library/openjdk:17-jdk: not found위와 같은 에러가 발생합니다. 이유를 찾아보니 Docker hub 정책변화로openjdk 이미지를 eclipse-temurin 으로 이전한 상태라고 하는데 어떻게 해야하나요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
docker 최신 버전 PGDATA 경로 설정 업데이트 소식 공유
강의에서 말씀하신 것처럼, postgres라고만 입력하면 최신 버전의 PostgreSQL이 실행됩니다.PostgreSQL 18 버전 이상부터는 데이터 디렉터리 경로가 기존의 /var/lib/postgresql/data에서/var/lib/postgresql/<버전>/docker 형태로 변경되었습니다.따라서 저는 현재 최신 버전인 PostgreSQL 18을 사용하고 있어서/var/lib/postgresql/18/docker 경로로 지정해야 오류가 발생하지 않았습니다.만약 PostgreSQL 17 이하 버전을 사용하신다면,강사님께서 안내해주신 기존 경로(/var/lib/postgresql/data)를 그대로 사용하시면 됩니다.아래 링크를 한 번 읽어보시면 도움이 될 것 같습니다.https://forums.docker.com/t/mysterious-docker-issue-with-postgres/149898/7https://github.com/docker-library/postgres/pull/1259
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
ec2 우분투 도커 설치 관련
안녕하세요 강사님좋은 강의 잘 듣고 있습니다이번 강의를 우분투 환경에서 진행해와서 도커 설치를 이미 했던 것처럼 공식 문서를 통해 다음과 같이 명령어를 작성하려고 했습니다.sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") 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 docker-buildx-plugin docker-compose-plugin하지만 강의를 따라오다보니 강사님께서 입력하신 명령어가 많이 달라 궁금한 부분이 생겼습니다sudo apt-get update && \ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && \ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \ sudo apt-key fingerprint 0EBFCD88 && \ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \ sudo apt-get update && \ sudo apt-get install -y docker-ce && \ sudo usermod -aG docker ubuntu && \ newgrp docker && \ sudo curl -L "https://github.com/docker/compose/releases/download/2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \ sudo chmod +x /usr/local/bin/docker-compose && \ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose명령어를 천천히 살펴보다가 몇 가지 궁금한 게 생겨서 질문드립니다공식 문서로 할때는 -o로 직접 저장을 했는데 강사님이 써주신 방식이 어떤 방식의 이점이 있는지, 실제로 업무에서 사용할 땐 아래 방식으로 써야하는지 궁금합니다sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asccurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \ sudo apt-key fingerprint 0EBFCD88 && 공식 문서 명령어를 사용할 때에는 compose나 docker ce 등을 간단하게 한번에 설치했습니다. 강사님 명령어를 살펴보니 다른 방식으로 github에서 받아오시는것 같고 추가적인 명령어도 더 들어가는데 어떤 장점 때문에 이 방식을 쓰시는지 궁금합니다감사합니다