기본 centos 도커 이미지 설치 시 권한 문제로 cgroups(control groups)을 이용할 수 없어 systemctl 을 이용할수 없음 그러므로 아래의 명령어로 컨테이너를 생성해야함 docker run -d --privileged -name centos centos /sbin/init privileged 옵션과 init 이 중요 privileged가 아무래도 cgroups를 사용할수있도록 해주는 뭔가 인거같다 init은 init-script -d 옵션은 백그라운드 백그라운드로 돌아가는 docker 접속 명령어 docker exec -it centos bash
Docker 이미지기본 리눅스 베이스 이미지에 필요한 라이브러리 들이 추가된 파일Docker 이미지 파일은 바뀐 부분만 이미지 파일로 생성실행 될때는 기본 베이스 이미지 + Docker 이미지 파일을 합쳐서 실행이미지 파일을 수정 시 쓰기 이미지 파일이 생성되며 그 파일에 기록이 남음Docker는 이미지 파일을 통째로 생성하지않고 참조하는 방식으로 구성됨그래서 배포 시 부모이미지와 같이 배포되어야함 추가 변경사항은 변경된 이미지만 추가 Docker 컨테이너Docker 이미지 파일이 실행된 상태 실행중에 변경사항을 이미지 파일로 만들수있다 DockerDocker 이미지 파일이 실행될 수 있는 실행 환경
Docker 게스트os를 설치하지 않아도 되기때문에 반가상화 보다 좀더 경랑화 된 컨테이너호스트os의 자원을 같이 사용호스트 os와 거의 비슷한 속도를 보임 리눅스 컨테이너(LXC)컨테이너 : os가 존재하지않는 가상공간리눅스 커널에서 제공해주는 기능으로 Control groups(cgroups), namespace isolation(namespaces) 으로 만든 공간cgroups : 호스트 os의 cpu, 메모리 등 자원을 사용할수있도록 해줌namespaces : 완전 격리된 공간을 제공 lxc는 이렇게 격리된 공간과 자원만 제공할뿐 배포 및 부가 기능은 제공하지 않음그래서 최근 docker는 libcontainer를 이용 좀 더 부가기능이 추가된 컨테이너