작성
·
247
0
version: "3"
services:
web-server:
image: nginx
container_name: nginx
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/:/etc/nginx/default.conf.d/
blue:
image: test-express
container_name: testserver_blue
restart: always
expose:
- "8080"
volumes:
- ./:/home/ec2-user
- /etc/localtime:/etc/localtime
green:
image: test-express
container_name: testserver_blue
restart: always
expose:
- "8080"
volumes:
- ./:/home/ec2-user
- /etc/localtime:/etc/localtime
요게 제가 작성한 docker-compose.yml 파일입니다 . 근데 이부분을 실행하다보면 ..
repository does not exist or may require 'docker login': denied: requested access to the resource is denied
요 에러가 발생해서 도커로그인은 정상적으로 ec2에서 되어있는데.. 왜 그런건지를 이해를 못하겠어요.
그리고 Error: No such container: nginx 요게 자꾸떠서 이미지를 nginx를 docker pull nginx로 받아두었는데 왜 이런 이슈가 생기는지를 모르겠습니다 .. 답변부탁드릴게요 ㅠㅠ
답변 1
0
안녕하세요. 답변도우미입니다. 우선 본 강의가 평생 강의라서요. 강의 외에 각자 작성하시는 코드에 대해 저희가 답변드리는 것이 조금 무리가 있어요. 이 부분은 양해부탁드려요. 직접 작성하신 코드에 대한 의견이라서, 정확한 답변이 아닐 수는 있는데요. 가볍게라도 다음과 같이 의견드립니다.
먼저, 첫 번째 문제인 "repository does not exist or may require 'docker login': denied: requested access to the resource is denied" 에러는 아마도 test-express
이미지와 관련이 있는 것 같아요.
test-express
는 표준 Docker 이미지가 아닌 것 같으니, 로컬에서 빌드하거나 로컬 Docker 레지스트리에서 가져와야 할 것 같아요.
두 번째 문제인 "Error: No such container: nginx"는 아마도 컨테이너 이름이 잘못 설정된 것 같아요. docker-compose.yml
파일에서 green
서비스의 container_name
을 testserver_green
으로 변경해 보는 것도 좋을 것 같습니다.
yamlCopy codeversion: "3"
services:
web-server:
image: nginx
container_name: nginx
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/:/etc/nginx/default.conf.d/
blue:
image: test-express
container_name: testserver_blue
restart: always
expose:
- "8080"
volumes:
- ./:/home/ec2-user
- /etc/localtime:/etc/localtime
green:
image: test-express
container_name: testserver_green
restart: always
expose:
- "8080"
volumes:
- ./:/home/ec2-user
- /etc/localtime:/etc/localtime
이외에 nginx.conf 를 blue/green 에 맞게 아주 잠깐 리로드를 해줘야 하는 부분도 있거든요. 이 부분은 다음과 같은 블로그도 참고해보시면 좋을 것 같습니다. 관련해서는 추후에 쿠버네티스 강의 작업시에 설명을 드리긴 하려고 생각하고 있지만, 우선 다음 블로그로 공유드립니다.
감사합니다.