도커 이미지를 다루는 방식

Siwoo Pak·2021년 9월 20일
0

Docker

목록 보기
5/10

1개의 도커 이미지를 다루는 방식

  • sebcontents/part1의 이미지를 이용하여 컨테이너 생성
$ docker run --name invador -it --rm -p 3000:80 sebcontents/part1
# 로컬의 해당 소스코드로 이동, invador 컨테이너에 복사
$ docker cp ./ invador:/usr/local/apache2/htdocs/
  • 브라우저로 해당 주소 이동시 화면
  • 해당 컨테이너의 내부 확인
# docker exec -it [컨테이너명] bash
$ docker exec -it invador bash
# 종료는 exit 명령어

2개의 도커 이미지를 다루는 방식

  • docker-compose.yml 파일 작성
// mac os 10.13버전 이하인 경우 버전은 '2.2'나 '3.3'으로
version: '3.8'

services:
  nginx:
    image: sebcontents/client
    restart: 'always'
    ports:
      - "8080:80"
    container_name: client

  node:
    image: sebcontents/server
    restart: 'always'
    ports:
      - "5000:3000"
    container_name: server
  • docker-compose를 이용
# docker-compose up
# docker-compose.yml 파일에 정의된 이미지를 컨테이너로 실행
$ docker-compose up
# docker-compose up {특정이미지}
# 특정이미지만 컨테이너로 실행
# 종료
$ docker-compose down
  • 오류 발생
    • yml파일 작성된 내용중에서 client의 image명 오타, 수정 후 해결
  • 수정 후 브라우저로 접속
  • 오류 발생 virtual box로 가상머신 위에다 하는 거라 ip가 localhost가 아니라서 서버로 요청이 가지 않음.(현재 IP는 192.168.99.100)
  • 포트포워딩으로 해결: virtual box의 해당 가상머신의 네트워크 수정
  • 해당머신의 설정->네트워크->어댑터1->고급 클릭
  • 고급 아래의 포트 포워딩 클릭
  • 이름: http(딴 이름으로 해도 상관없음)
  • 호스트포트: 5000
  • 게스트ip: 가상머신의 아이피
  • 게스트포트: 호스트포트와 동일하게
  • 브라우저에서 로그인 성공하고 결과 화면

참고

profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글