1. Image 생성방법
지난 게시물에서 Dockerfile 예시를 보고 생성을 하였습니다. 이번에는 생성한 Dockerfile을 가지고 Docker Image를 생성하는 방법입니다.
먼저 Dockerfile이 있는 경로로 이동하여 아래 명령어를 입력하면 Image가 생성됩니다.
# 예시
docker build -t [새로 생성할 이미지 이름] [Dockerfile 디렉토리 경로]
# 실제 명령어
docker build -t custom_ubuntu_2204 .
만약 Dockerfile 이름을 Dockerfile
이 아닌 다른 이름으로 하였을 경우는 아래 명령어를 입력합니다.
# 예시
docker build -t [새로 생성할 이미지 이름] -f [Dockerfile 이름] [Dockerfile 디렉토리 경로]
# 실제 명령어
docker build -t custom_ubuntu_2204 -f Dockerfile_ubuntu_2204 .
생성까지는 Dockerfile의 내용에 따라 걸리는 시간이 다릅니다.
정상적으로 완료가 되었으면 아래 명령어로 이미지를 확인할 수 있습니다.
docker images
이렇게 Docker의 Image가 생성이 되었다면, 해당 Image를 가지고 Container를 생성하는 방법을 이어서 설명드리겠습니다.
2. Container 생성방법
Container는 아래 명령어로 생성할 수 있습니다.
docker run --privileged -dit --init --name basic -p 50022:22 -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix custom_ubuntu_2204 /bin/bash
옵션 설명:
-d
: background 에서 계속 실행하도록 설정-p
: 포트 포워딩 (50022:22)--name
: Container Name-e DISPLAY=$DISPLAY
-v /tmp/.X11-unix:/tmp/.X11-unix
: xWindows 기능 추가--privileged
: 컨테이너를 특권 모드로 실행하여 모든 장치에 접근
💡 Docker 공식문서 설명
By default, Docker containers are “unprivileged” and cannot, for example, run a Docker daemon inside a Docker container.
This is because by default a container is not allowed to access any devices,
but a “privileged” container is given access to all devices (see the documentation on cgroups devices).
→ 즉, 컨테이너 내부에서 모든 장치에 접근할 수 있게 됩니다. 하지만 보안 위험이 따를 수 있으므로 신중하게 사용할 것.
저 같은 경우는 사용 포트를 50000번 대로 설정하고 있습니다. 포트 포워딩을 설정하는 이유는 SSH를 통해 Container로 접속하기 위함입니다. 포트 번호는 자유롭게 변경 가능합니다.
또한, xWindows를 사용하기 위해 생성할 때 해당 기능을 함께 추가하고 있습니다. 나중에도 추가할 수는 있지만, 처음부터 설정하는 것을 권해드립니다.
앞서 설명드린 명령어를 입력하면 Docker Container가 정상적으로 생성되는 것을 확인할 수 있습니다.
생성된 컨테이너 목록을 확인하려면 다음 명령어를 사용합니다:
docker ps -a
이 명령어는 현재 실행 중이거나 정지된 모든 컨테이너 목록을 출력해줍니다. 생성된 컨테이너가 목록에 나타난다면 정상적으로 이미지 → 컨테이너 변환이 완료된 것입니다.
지금까지는 명령어를 직접 입력하여 Docker를 실행하고 컨테이너를 관리해왔습니다. 다음 게시물에서는 이 과정을 더욱 간편하게 만들기 위해 스크립트를 활용하여 Docker를 실행하는 방법에 대해 소개드리겠습니다.
복잡한 명령어 입력 없이, 단 한 줄로 원하는 컨테이너를 생성하고 실행하는 방법이 궁금하시다면 다음 글도 기대해주세요!
'Docker' 카테고리의 다른 글
Docker Container에 SSH로 접속하는 방법 (0) | 2025.05.22 |
---|---|
Docker 관리 스크립트 (참고) (1) | 2025.05.22 |
Dockerfile 만들기: Ubuntu 22.04 기반 개발 환경 구축 (0) | 2025.05.22 |
DockerImage와 Container의 차이 (0) | 2025.05.22 |
Ubuntu 24.04에 Docker 설치하는 방법 (0) | 2025.05.21 |