구성 정보
- OS: Ubuntu 22.04.3 LTS
- Docker: Docker version 25.0.2, build 29cf629
우분투 컨테이너 구성
이미지 다운로드
버전을 명시하지 않으면 자동으로 latest로 지정된다
$ docker pull ubuntu:22.04
다운로드 받은 이미지 확인
$ docker images
이미지 검색 후 필요한 버전으로 다운로드 가능
$ docker search ubuntu
도커 컨테이너 생성
$ docker run -d --name test -p 2222:22 -it --privileged ubuntu:22.04
필요한 옵션은 검색 후 적용
-d | 컨테이너 백그라운드 실행 |
--name test | 컨테이너 이름 |
-p 2222:22 | 포트 매핑 (순서대로 - 호스트:컨테이너) |
-it | 컨테이너의 표준 입력(stdin), tty(가상터미널) 활성화. |
--privileged | 관리자 권한 부여 |
ubuntu:22.04 | 사용할 이미지 |
[ docker privileged 모드 ]
- 도커 컨테이너는 기본적으로 unprivileged 모드로 실행되며, 이 모드의 경우 시스템 주요 자원에 접근할 수 있는 권한이 부족하여 특정 장치 등의 시스템을 접근할 수 없음. (네트워크 설정 등)
- 컨테이너 내부에서 호스트 시스템의 모든 권한이 부여되므로 보안상 문제가 발생 할 수 있어 검토 후 사용.
- 참고: Runtime privilege and Linux capabilities
(https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)
컨테이너 확인
컨테이너 목록 확인
$ docker ps -a
컨테이너 접속
$ docker attach test
[컨테이너 나오기]
- Ctrl + D 또는 exit - 실행중인 컨테이너도 함께 종료 됨
- Ctrl + P, Q - 컨테이너는 실행 상태로 빠져나옴.
참고
컨테이너 추가 패키지 구성
이미지를 다운받아 컨테이너 구성 시 기본적인 패키지만 설치되어 있어 필요 패키지 추가 구성 필요
그 외 추가적인 설정을 적용하여, 도커 이미지로 만들어 배포 원본 이미지로 사용 가능.
필요 시 ssh_config를 수정하여 ssh로 접속도 가능
명령어
docker ps | 실행 중인 컨터이너 확인 |
docker ps -a | 생성 된 모든 컨테이너 확인 (정지 된 컨테이너 포함) |
docker rm [ CONTAINER ID | 컨테이너 삭제 |
docker rm [ CONTAINER ID ],[ CONTAINER ID ] | 컨테이너 다수 삭제 시 |
docker images | 도커 이미지 확인 |
docker rmi [IMAGE ID] | 도커 이미지 삭제 |
docker rmi -f [IMAGE ID] | 컨테이너 삭제 전 도커 이미지 강제 삭제 |
docker start [CONTAINER ID] | 컨테이너 실행 |
docker attach [NAMES] | 컨테이너 접속 (NAMES 대신 CONTAINER ID 를 사용해도 됨) |