수업을 듣고 배운 내용과 연습한 내용을 정리하였습니다
개인 공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
잘못된 부분이 있거나 질문사항은 댓글로 남겨주시면 성심성의껏 답변해드리겠습니다. 감사합니다!
도커(Docker)는 리눅스의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트이다. 도커 웹 페이지의 기능을 인용하면 다음과 같다:
도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다.
도커는 리눅스에서 운영 체제 수준 가상화의 추상화 및 자동화 계층을 추가적으로 제공한다. 도커는 cgroups와 커널 이름공간과 같은 리눅스 커널, 또 aufs와 같은 유니언 가능 파일 시스템의 리소스 격리 기능을 사용하며, 이를 통해 독립적인 "컨테이너"가 하나의 리눅스 인스턴스 안에서 실행할 수 있게 함으로써 가상 머신을 시작하여 유지보수해야 하는 부담을 없애준다.
리눅스 커널의 이름공간 지원은 대체적으로 프로세스 트리, 네트워크 사용자 ID, 마운트된 파일 시스템을 포함한 운영 환경에 대한 응용 프로그램의 관점을 격리시키지만, 커널의 cgroup들은 CPU, 메모리, 블록 입출력, 네트워크를 포함한 리소스 제한을 제공한다. 버전 0.9부터 도커는 libvirt, LXC (리눅스 컨테이너), systemd-nspawn을 통한 추상화된 가상화 인터페이스를 사용하는 것 뿐 아니라 리눅스 커널이 제공하는 가상화 기능을 직접 사용하기 위한 유일한 수단으로 libcontainer 라이브러리를 포함하고 있다.
- 출처 : 위키백과 -
* 설치전 기본 작업
1. 저장소를 최신 패키지로 업데이트
최신 패키지로 저장소에 있는 패키지들을 업데이트 하려면 아래 명령어를 입력한다.
$sudo apt update && sudo apt upgrade
2. 도커 다운을위해 필요한 패키지 설치
$sudo apt install apt-transport-https ca-certificates curl gnupg-agent softwareproperties-common
- apt-transport-https : 패키지 관리자가 https를 통해 데이터 및 패키지에 접근할 수 있도록 한다
- ca-certificates : ca-certificate는 certificate authority에서 발행되는 디지털 서명. SSL 인증서의 PEM 파일이 포함되어 있어 SSL 기반 앱이 SSL 연결이 되어있는지 확인할 수 있다.
- curl : 특정 웹사이트에서 데이터를 다운로드 받을 때 사용
3. curl 명령어로 도커 다운받기 ( Docker GPG키 추가 )
curl –fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - // OK가 나오면 성공
4. Docker 저장소 등록
$sudo add-apt-repository \
> "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
> $(lsb_release -cs) \
> stable"
* 도커 설치 및 확인
$sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io
$sudo apt install docker.io$docker –v //설치가 잘 되었는지 확인해 봅니다.
$sudo systemctl enable docker && service docker start //부팅할 때마다 자동 시작되도록 등록해줍니다.
//관리자 권한을 필요로 하므로 비밀번호를 입력해줍니다.
$service docker status
* Hello World 실습
$sudo docker pull hello-world // docker hub 사이트에서 hello-world 이미지 다운로드
$sudo docker images // 도커에 있는 이미지 확인
$sudo docker run hello-world // 도커에 컨테이너 띄우기
$sudo docker ps -a // 컨테이너 확인하기
Hello World 실습을 통해 컨테이너가 띄워져있는 것을 확인할 수 있지만
이해를 돕기 위해 Docker UI 인 Portainer 를 통해 확인해보도록 하겠습니다.
* Portainer (Docker Web UI 관리툴) 설치
$sudo mkdir -p /data/portainer
$sudo docker run --name portainer -p 9000:9000 -d --restart always -v /data/portainer:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
길어보이지만 하나씩 설명해보면
--name 으로 컨테이너 이름 생성
-p 호스트 포트 9000 내부포트 9000번
-d 데몬으로 백그라운드
--restart always 재부팅시 자동시작
-v /data~~ 호스트와 컨테이너간 볼륨매칭
docker.sock도 마찬가지로 공유
portainer/portainer 이미지 사용
Firefox에 http://127.0.0.1:9000 검색하면 위의 Portainer 창이 뜨게 됩니다.
Local 을 선택하고 Connect 를 선택합니다.
도커에는 2개의 컨테이너가 실려있습니다.
하나는 hello-world 실습에서 만든 hello-world 컨테이너이고,
다른 하나는 지금 만든 portainer 컨테이너입니다.
Ubuntu 에서 $sudo docker images 명령어를 입력하면 마찬가지로 두 개의 컨테이너가 떠있는 것을 볼 수 있습니다.
* Docker 삭제
$sudo docker rm 컨테이너ID
$sudo docker images
'서버 > Ubuntu' 카테고리의 다른 글
오류 해결 - Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. (2) | 2021.05.07 |
---|---|
vi 오류 : 방향키 누를시 알파벳 입력되거나 명령어 안먹힐 때 (7) | 2021.04.28 |
Ubuntu 설치 (0) | 2021.03.09 |
openssl 대칭키 암복호화 실습 (0) | 2021.02.01 |
댓글