도커 실습

김하영·2021년 2월 18일
0

MAC OS 기반에서 Docker 실습을 진행 해본다.

MAC 용 Docker 설치 : https://hub.docker.com/editions/community/docker-ce-desktop-mac/

ubuntu 이미지에 apache2를 설치하여 웹 서버 구축 > Hello Nora 출력하기

[ docker commit 명령어로 이미지 생성 ]

  1. ubuntu 이미지를 실행
docker run -it --rm --name ubuntu_apache ubuntu:18.04 
  1. 컨테이너에 들어오게 되면 아래 명령어로 apache2를 설치
apt-get updateapt-get install -y apache2 
  1. ctrl + p + q를 눌러 컨테이너를 중지시키지 않고 빠져나오기

  2. docker commit 을 통해 현재 컨테이너의 상태를 그대로 이미지로 정의

docker commit -a "ha0kim" -m "install apache2" ubuntu_apache ubuntu_apache:latest

-a는 이미지를 만든 사람의 정보를 추가하는 옵션이고, -m은 커밋 메시지를 기술하는 옵션이다. 그 뒤에는 컨테이너 ID 또는 이름을 입력하고 마지막으로 우리가 정의한 이미지 이름과 태그를 적는다.

  1. docker images 명령어를 통해 image 생성 확인

  2. 컨테이너 실행

docker run -it --rm -p 8080:80 --name ubuntu_apache ubuntu_apache:latest
  1. apache2 실행service apache2 start

  2. http://localhost:8080/ 페이지 확인

  3. 웹 페이지 추가

cd /var/www/htmlecho "<h1>Hello Nora</h1>" > hello.html
  1. http://localhost:8080/hello.html 페이지 확인

  2. docker commit 을 통해 현재 컨테이너의 상태를 그대로 이미지로 정의

docker commit -a "ha0kim" -m "add webpage" ha0kim_apache ha0kim_apache:latest

ubuntu_apache 와 ha0kim_apache 를 docker history 명령어로 비교하면 이미지 계층화를 확인할 수 있다.

위 작업을 docker file을 구현하여 더 간단하게 작업할 수 있다.

[ docker file로 이미지 생성 ]

  1. docker file 작성
FROM ubuntu:18.04

RUN apt-get update
RUN apt-get install -y apache2
WORKDIR /var/www/html
RUN echo "<h1>HELLO NORA</h1>" > hello.html
EXPOSE 80

CMD ["apachectl", "-DFOREGROUND"]
  1. docker build -t apache-ubuntu:1 .

-t 옵션은 --tag 옵션으로 이미지의 이름과 태그를 설정하는 옵션이다. 태그는 생략하게 되면 latest 라고 설정 되며, 맨 마지막의 점은 컨텍스트 경로이다.

만약 파일 명이 Dockerfile이 아니라면 -f 옵션을 통해서 Dockerfile을 지정해줘야한다.

빌드 과정에서 에러가 없었다면 아래와 같은 문구를 확인하실 수 있을 겁니다.

  • docker build 명령어 실행 후, 아래와 같은 에러가 발생하는 경우가 있다.Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

brew install --cask docker 후, docker ps 명령어로 ‘Docker is running’ 상태인지 확인

  1. docker run -it --rm -p 8080:80 apache-ubuntu:1
profile
Back-end Developer

0개의 댓글