https://docs.docker.com/desktop/mac/install/
경로에서 Intel 또는 Apple chip 본인에게 맞는걸 설치하기
docker --version
명령어를 통해 docker 설치를 확인할 수 있다.
개발자들을 위한 일종의 컨테이너 기술로 소프트웨어 수송, 배포에 사용할 수 있습니다.
(실행 환경에 구애받지 않고 애플리케이션을 실행 할 수 있는 장점이 있습니다.)
일반적으로 한 컴퓨터에는 한 가지 버전의 프로그램을 설치하고 실행시킵니다. 이 때 버전이 다르면 실행이 안됩니다. 하지만 Docker가 해결해줍니다.
(버전이 다르면, Docker가 버전을 조정해주기 때문에 의존성 문제를 해결할 수 있습니다.)
컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 프로세스에 영향을 줄 수 없습니다.
네트워크
기본으로 컨테이너 하나에 하나의 IP주소가 할당되어 있습니다.
파일 시스템
컨테이너 안에서 사용되는 파일 시스템은 구획화되어 있습니다. 그래서 해당 컨테이너에서의 명령이나 파일 등의 액세스를 제한할 수 있습니다.
VM(가상 머신) 입니다. 하나의 컴퓨터 위에 여러 개의 독립적인 컴퓨터가 작동할 수 있게 하는 기술입니다.
ex) VMware, Virtual Box, Parallels 등이 있습니다.
컨테이너 역시 가상 머신과 비슷한 수준의 격리성을 제공합니다. (정확한 비교는 나중에..)
개발자들은 특정 버전의 Node.js나 MySQL 등을 각자의 운영체제에 설치하고 그 후에 개발을 진행합니다. 때로는 시스템 환경 변수, 버전을 제대로 맞춰야 작동하는 경우가 있습니다.
도커가 이런 문제를 해결해준다.
어떠한 운영체제든 상관없이 Docker 명령어를 통해 프로그램을 실행할 수 있습니다.
AWS ECS를 통해 도커 컨테이너를 배포할 수 있습니다.
컨테이너 기술의 가장 큰 장점은 실행 환경의 일치입니다. 컨테이너 기술은 아주 활발하게 이용되고 있습니다.
애플리케이션 의존성, 네트워크 환경, 파일 시스템에 구애받지 않고, 도커라는 기술 위에 실행될 수 있도록 만든 애플리케이션 상자
모든 컨테이너는 이미지로부터 생성됩니다. 애플리케이션 및 애플리케이션 구성을 함께 담아놓은 템플릿으로, 이를 이용해 즉시 컨테이너를 만들 수 있습니다.
변경 사항을 추가/커밋해서 또 다른 이미지로 만들 수 있습니다.
이미지는 레지스트리에 저장됩니다. Docker Hub, AWS ECR이 있습니다. 도커 CLI에서 이미지를 이용해 컨테이너 생성 시, 호스트 컴퓨터에 이미지가 존재하지 않는다면, 기본 레지스트리부터 다운받습니다.
(도커 이미지를 저장하고 배포/공유하는데 사용한다.)
Permission denied가 뜬다면 sudo 명령어를 사용하자.
다른 사람이 제공한 도커 이미지를 받아 사용하는 경우, 원하는 모든 기능이 구성되어 있지 않을 수 있습니다.
모든 파일이 하나의 이미지에 구성되어 있고, 그 이미지를 사용할 수 있습니다. (도커 이미지에 모두 구성되어 있지 않은 경우도 있습니다.)
컨테이너 파일을 복사하는 방법은 두 가지가 있습니다.
docker container cp ./경로
위 명령어를 통해서 복사할 수 있습니다.
Docker Container를 이미지 파일로 변환합니다.
docker container commit 컨테이너_이름 (이미지)
생성된 이미지를 다른 포트에서 웹 서버로 구동한다.
ex) 900 포트
docker run --name (컨테이너_이름) 900:80 (이미지)
docker build --tag (이미지_버전)
생성된 이미지를 이용해 901포트에 웹 서버 구동
docker run --name (컨테이너_이름) -p 901:80 (이미지_버전)
이후 127.0.0.1:901 에서 웹 서버가 작동하는 걸 확인할 수 있다.