도커 13

도커를 이용한 워드프레스 웹 서비스 구축

들어가며 이미지설치 도커볼륨생성 mysql 컨테이너 생성 mysql 컨테이너 생성 및 확인 wordpress 컨테이너 생성 :8080 들어가서 확인 끝마치며 들어가며 실습에 필요한 가상환경을 구축하기 위해 vagrant 설치와 docker 설치가 필요합니다. 위의 2개의 링크를 확인하여 설치하시고 다음 내용을 참고해주시길 바랍니다. 도커 명령어, 환경변수 등을 살펴보도록 하겠습니다. 이미지 설치 이 과정은 스킵해도 문제는 없습니다. 하지만, 오프라인에서 사용할 일이 있다면 이미지를 미리 설치해야 합니다. mysql 은 현재 시점에 8버전이 최신버전이지만 많은 유저들은 안정성을 고려하여 5.7 버전을 다수 이용합니다. 워드프레스 역시 그와 비슷한 시점의 설치해줍니다. vagrant@kube-control1..

07장, 프라이빗 이미지 저장소

프라이빗 이미지 저장소 개요 도커가 기본적으로 사용하는 이미지 저장소는 도커 허브 도커 허브는 기본적으로 퍼블릭 이미지 저장소로 사용되기 때문에 기업이 자체적으로 이미지를 보관하려면 별도로 프라이빗 이미지 저장소를 구성해야 함 프라이빗 이미지 저장소는 경우에 따라 내부망 뿐만 아니라 인증을 통해 외부에서도 접근 가능하도록 구성할 수 있음 프라이빗 이미지 저장소란? 기업이 사내에 구축하여 내부 또는 외부에서 사용할 수 있도록 만든 이미지 저장소 도커 허브에서도 프라이빗 이미지 저장소를 구성할 수 있지만 하나의 레포지토리만 가능하며, 이미지 자체를 사내에서 보유하지 않아 불안하다면 사내에 저장소를 구축하는 방법이 가장 적합 프라이빗 이미지 저장소 종류 도커 초기에는 도커 레지스트리를 주로 사용했음 현재는 다..

06장-2, Dockerfile

Dockerfile 개요 도커는 Dockerfile을 사용하여 이미지를 제작할 수 있다 Dockerfile은 코드 형태의 텍스트 문서이며, 여러 가지 지시어를 사용하여 이미지를 제작할 수 있다. 일반적으로 이미지를 생성할 때 commit 이나 import 보다는 Dockerfile을 사용한다. 컨테이너가 실행하는 CMD 또는 ENTRYPOINT 는 commit 이나 import 로는 지정하기 어렵기 때문 코드 형태로 되어 있어 버전 관리에 용이함 이미지의 기능을 파악하기도 쉬움 Dockerfile 지시어 지시어 설명 FROM 베이스 이미지 지정 RUN 이미지를 생성하면서 실행할 명령 지정 ENTRYPOINT 컨테이너의 애플리케이션 지정 EXPOSE 컨테이너의 포트 지정 ADD 이미지 생성시 파일 추가 V..

06장-1, 이미지 제작 및 업로드

이미지 태그 이미지를 업로드 할 때 이름이 중요. 하지만, 이미지의 이름을 변경하는 기능은 없음 태그 기능을 사용하여 이미지를 가리키는 이름을 하나 추가하는 형태 이미지를 업로드 하려는 목적이라면 태그를 지정할 때 "허브ID/저장소이름:태그" 형태를 유지하는 것이 좋음. docker tag [root@docker ~]# docker tag --help Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] 태그는 리눅스의 하드 링크를 생성하는 것과 비슷하며, 기능 또한 그러하다. centos:latest 이미지에 JadenPark/docker:centos 태그를 부여 [root@docker ~]# docker tag centos:latest JadenPark/..

05장-2, 컨테이너의 통신

링크(--link) 컨테이너끼리 서로 통신하려면 기본적으로 같은 bridge 드라이버 네트워크를 사용 종종 컨테이너 간 이름 또는 별칭으로 통신해야하는 경우도 있는데 이런 경우에 링크 기능을 사용 링크를 사용하여 os1 컨테이너가 web1 와 통신할 때 링크를 사용 [root@docker ~]# docker rm -f $(docker ps -aq) [root@docker ~]# docker run --name web1 -d httpd 886997eb2e59ce48989f047e48a90571060b8449a8ffc3f202fa0ec84d69fd8d [root@docker ~]# docker run -itd --name os1 --link web1 centos 7a3fd6f0c1da1b693d710307e..

05장-1, 도커 네트워크 유형

네트워크 유형 도커에는 다양한 네트워크 드라이버가 있음 용도에 맞게 드라이버를 선택해서 사용 기본 네트워크 드라이버는 bridge, host, null 이 있음 docker network ls 명령으로 목록 확인 가능 [root@docker ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 5b8289ce8aa7 bridge bridge local b8cce713f8c0 host host local ba6cb7a8aee9 none null local bridge bridge는 컨테이너가 사용하는 프라이빗 네트워크 같은 bridge 에 연결되어 있으면 컨테이너의 IP 주소로 통신할 수 있음 외부로 통신할 때에는 NAT 통신을 사용하며, 외부에서 bridge 로 통신..

04장, 도커 볼륨

도커에서 데이터 관리 기본적으로 컨테이너에 생성되는 모든 파일은 컨테이너 레이어에 저장된다. 이 데이터들은 컨테이너와 함께 삭제되는 런타임 데이터인데, 이 데이터를 영구적으로 저장하려면 반드시 볼륨을 사용해야 한다. 도커에서 볼륨을 사용하는 방법은 Bind Mount 와 볼륨(Volume) 두 가지 방법이 있다. Bind Mount 소개 초기 도커부터 사용했던 방식 호스트의 특정 디렉토리와 컨테이너의 디렉토리를 연결하는 방식 Bind Mount 는 쉽게 사용할 수 있지만 도커에 의해 관리되지 않기 때문에 따로 기록하지 않으면 관리하기가 쉽지 않음 성능이 뛰어나지만, 호스트의 파일 시스템에 대한 의존도가 높음 만약 애플리케이션을 개발한다면 Bind Mount 보다 볼륨을 사용하는 것을 권장 Bind Mou..

1, 2, 3장 연습문제

도커를 설치해보시오. ubuntu , mysql:5.7 , dokken/centos-7 , httpd 이미지 설치 해당 이미지들 이름은 차례로 os1 , mydb , centos7 , web1 , web2 로 httpd만 2개 container 실행 mysql 과 httpd 는 표준입력과 가상 터미널이 필요없기 때문에 docker run -itd --name os1 ubuntu:latest docker run -itd --name centos7 dokken/centos-7 docker run -d --name mydb mysql:5.7 docker run -d --name web1 httpd docker run -d --name web2 httpd mysql:5.7 의 WorkingDir 확인 web1 ..

03장-3, 컨테이너 관리

컨테이너 접근 및 실행 분리 모드로 실행중인 컨테이너에 접근하거나 컨테이너에 직접 접근하지 않고 명령을 실행하는 방법이 있다. docker attach 와 docker exec 에 대해 알아보자. docker attach [root@docker ~]# docker attach --help Usage: docker attach [OPTIONS] CONTAINER docker attach 명령으로 표준 입력, 표준 출력/에러 를 포함하는 컨테이너에 연결할 수 있다. 컨테이너 사용을 마쳤으면 Ctrl + P + Q를 사용하여 종료하지 않고 빠져나온다. docker attach 명령으로 쉘 프로그램 외에 애플리케이션을 실행하고 있는 컨테이너에 접근하면 쉘이 나타날 것이라고 생각할 수 있다. 하지만, 컨테이너는 ..

03장-2, 컨테이너 실행

컨테이너 생성 및 확인 컨테이너를 생성하고 시작하는 방법과 한 번에 실행하는 방법이 있다. 그리고 컨테이너가 실행되고 있는지 중지되어 있는지 알 수 있는 명령어를 알아본다. 리소스의 사용량을 확인할 수 있는 명령어를 알아본다. docker ps [root@docker ~]# docker ps --help Usage: docker ps [OPTIONS] docker ps 명령으로 실행중인 컨테이너 목록을 확인할 수 있다. -a 옵션을 사용하면 현재 호스트에 존재하는 모든 컨테이너를 출력 [root@docker ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f84b62afbea9 ubuntu:latest "/bin/bash" 8 mi..