# 이미지 빌드하고 컨테이너 배포해보기

- Author: @smithsolution
- Published: 2025-03-15
- Updated: 2025-03-16
- Source: http://blex.me/@smithsolution/%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%B9%8C%EB%93%9C%ED%95%98%EA%B3%A0-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EA%B8%B0
- Tags: 미분류

---

sd

## ✨도커 이미지를 빌드하자.
- 생성 및 편집
```
# 0.작업용 디렉터리[ workspace ]를 만들어준다.
mkdir -p workspace

# 1.도커파일을 생성한다.
touch Dockerfile

# 2.도커파일을 편집한다.
sudo nano Dockerfile
```
![](https://static.blex.me/images/content/2025/3/16/202531614_Xz5Lros0YLLL1wD8SAAr.png)

- 아래 내용 붙여주기
```
FROM ubuntu:latest                       # Docker에 배포할 OS선택
RUN apt-get -qq update \                       # OS로 빌드 후, 실행할 명령어
&& apt-get -qq install -y g++ cmake \
&& apt-get clean                       

EXPOSE 8000                        # 호스트와 연결할 포트번호
ENTRYPOINT ["/bin/bash"]                       # 빌드 후, 이미지 실행 시, 실행될 명령어 
```
![](https://static.blex.me/images/content/2025/3/16/202531614_J95Mkn0AX2tCb7UGTB9y.png)

- 이제 이미지를 만들 준비작업은 끝났다. 이를 기반으로 이미지를 생성해보자.
```
docker build --rm -t cpp-builder .
```
> (꼭 마지막에 점(.)을 붙여주어야 한다. 점(.)은 현재위치에 있는 Dockerfile을 빌드하겠다는 뜻이다.
 우리가 python에서 `pip install -e .`를 할때, 현재위치에 있는 setup.py파일을 실행하겠다는 말과 유사하다.)
 ![](https://static.blex.me/images/content/2025/3/16/202531614_nKev1nXbstq3T1rUF3Gc.png)
 
 - 빌드가 다 되었다면, 이제 `docker images`를 통해 이미지가 존재하는지 확인해보자.
 ![](https://static.blex.me/images/content/2025/3/16/20253160_kFBTmQFbLaQNvZ8v3a2G.png)
 
 ## ✨만든 이미지로 컨테이너 배포를 하자.
 - 컨테이너를 배포하기 전에 Docker와 VsCode를 같이 사용하려면, 저장공간을 공유(Mount)해야 한다.
그래서 사용자가 로컬저장소(OSX)에서 원하는 위치에 폴더를 생성해야 한다.
그리고 다음 형태로 명령어를 입력한다. 예시는 아래와 같다.
 
 ```
 docker run \
   --name "cpp_container" \
    -d \
    -it \
    -v /home/admin2/cpp_workspace:/workspace \
    cpp-builder
 ```
 
 컨테이너가 정상적으로 배포되었는지 확인하기 위해 아래 명령어를 쳐서, cpp_container라는 컨테이너가 있는지 확인히자.
 ![](https://static.blex.me/images/content/2025/3/16/202531614_4RVMMK5WLjrmwI9y33nq.png)
 
 위와 같이 확인했으면, 컨테이너를 한번 stop했다가 다시 start해준다. 안그러면 나중에 터미널을 닫으면, 컨테이너도 같이 죽어버리는 현상이 생긴다. 그래서 refresh를 해주는게 좋다.
 ```
 # 컨테이너 refresh해주기
docker stop cpp_container
docker start cpp_container
 ```
 ![](https://static.blex.me/images/content/2025/3/16/202531614_X6pZOgpmIkSt1R0x72lL.png)
 
 > 이후에는 해당 컨테이너를 유동적으로 사용할 수 있다.
