생활코딩

Coding Everybody

코스 전체목록

닫기

Docker

소개

가상 머신처럼 독립된 실행환경을 만들어주는 도구. 마치 운영체제에 운영체제를 설치하는 것처럼 실행 된다. 하지만 운영체제는 실제로 설치되지 않기 때문에 설치 용량이 적고 빠르다. 

홈페이지

https://docker.com/

사용법

http://pyrasis.com/Docker/Docker-HOWTO

댓글

댓글 본문
  1. Sansol Park
    Docker에 관한 질문에 대해 답변드리겠습니다.

    ### 1. **Ubuntu + 여러 패키지 환경 구축**

    **질문 요약**: `ubuntu-zsh-emacs-python-pytorch` 환경을 구축하고자 할 때, 각각의 이미지를 따로 띄우는 게 좋을지, 아니면 하나의 베이스 이미지에서 필요한 패키지를 모두 설치하는 것이 좋을지에 대한 질문.

    **답변**: 일반적으로 하나의 컨테이너에 필요한 모든 패키지를 설치하는 것이 더 효율적입니다. 각각의 이미지를 따로 띄우고 연계하는 것도 가능하지만, 관리와 실행이 복잡해질 수 있습니다.

    - **추천 방법**: `ubuntu` 이미지를 베이스로 사용하는 Dockerfile을 작성하여 `zsh`, `emacs`, `python`, `pytorch` 등을 모두 설치하세요. Dockerfile을 사용하면 이 환경을 재현할 수 있어 여러 환경에서 동일한 개발 환경을 유지할 수 있습니다.

    예시 Dockerfile:
    ```Dockerfile
    FROM ubuntu:latest
    RUN apt-get update && apt-get install -y zsh emacs python3 pip
    RUN pip install torch # PyTorch 설치
    # 추가로 필요한 설정이나 패키지 설치
    CMD ["/bin/zsh"]
    ```

    - **각각의 이미지를 사용하여 연계하는 방법**: Docker Compose를 사용하면 여러 컨테이너를 함께 실행하고 연결할 수 있습니다. 그러나 단순한 개발 환경 구축을 위해서는 하나의 컨테이너에 필요한 모든 패키지를 설치하는 것이 더 나을 수 있습니다.


    이 답변들이 도움이 되길 바랍니다! Docker에 대해 더 궁금한 점이 있다면 언제든지 질문해 주세요.
    대화보기
    • Sansol Park
      ### 2. **이미 생성한 컨테이너에 새로운 옵션 추가**

      **질문 요약**: 이미 생성된 컨테이너에 대해 `docker run`에서 줬던 옵션을 나중에 추가할 수 있는지에 대한 질문.

      **답변**: 이미 생성된 컨테이너에 새로운 옵션을 추가하는 것은 불가능합니다. `docker start`는 단순히 중지된 컨테이너를 재시작하는 명령이며, 새로운 옵션을 추가로 전달할 수 없습니다.

      - **해결 방법**:
      1. **새로운 컨테이너 생성**: 새로운 옵션을 사용하려면 기존의 컨테이너를 삭제하고 새로 생성해야 합니다. `docker commit` 명령을 사용해 컨테이너를 이미지로 저장하고, 그 이미지로 새로운 컨테이너를 생성하면서 옵션을 추가할 수 있습니다.

      ```bash
      docker commit [container_id] new_image_name
      docker run -v /src/dir:/dst/dir -it new_image_name /bin/bash
      ```

      2. **데이터 유지**: 만약 컨테이너 내 데이터를 유지하려면, 기존 컨테이너에서 데이터를 볼륨으로 마운트하거나 백업한 후, 새로운 컨테이너에서 해당 데이터를 다시 마운트하거나 복구하는 방법을 사용할 수 있습니다.


      이 답변들이 도움이 되길 바랍니다! Docker에 대해 더 궁금한 점이 있다면 언제든지 질문해 주세요.
      대화보기
      • Sansol Park
        **Docker 컨테이너에 IP 할당 방법**

        **질문 요약**: Docker 컨테이너에 특정 IP를 할당하는 방법에 대한 질문.

        **답변**: Docker 컨테이너에 특정 IP를 할당하려면 사용자 정의 네트워크를 생성하여 컨테이너에 고정 IP를 할당할 수 있습니다.

        - **방법 1: 사용자 정의 브리지 네트워크 사용**
        1. 사용자 정의 네트워크를 생성합니다.
        ```bash
        docker network create --subnet=192.168.1.0/24 my_custom_network
        ```

        2. 컨테이너를 실행할 때 고정 IP를 할당합니다.
        ```bash
        docker run --net my_custom_network --ip 192.168.1.100 -it ubuntu /bin/bash
        ```

        이 방법을 사용하면 컨테이너에 고정된 IP를 할당할 수 있습니다.

        - **방법 2: Docker Compose 사용**
        Docker Compose 파일에서 네트워크 설정을 통해 고정 IP를 할당할 수도 있습니다. `docker-compose.yml` 파일을 사용하여 네트워크와 고정 IP를 설정할 수 있습니다.

        ```yaml
        version: '3'
        services:
        my_service:
        image: ubuntu
        networks:
        my_network:
        ipv4_address: 192.168.1.100

        networks:
        my_network:
        driver: bridge
        ipam:
        config:
        - subnet: 192.168.1.0/24
        ```

        이 답변들이 도움이 되길 바랍니다! Docker에 대해 더 궁금한 점이 있다면 언제든지 질문해 주세요.
        대화보기
        • 엠제이
          안녕하세요. 말로만 듣던 docker를 이제서야 공부하기 시작했습니다. 알기 쉽게 설명해 주셔서 고맙습니다.
          아직 세부적인 사용법을 잘 몰라서 엉뚱한 질문일 수 있는데요,
          만약 ubuntu-zsh-emacs-python-pytorch 환경을 구축하고자 한다면, 각각의 이미지를 pull 해서,
          각각을 띄워놓고 연계(가 가능하기는 한건가요?)해서 쓰는 것이 좋을까요?
          아니면 ubuntu를 pull한 후에 각각의 패키지를 그 위에서 인스톨 하는 것이 좋을까요?
          조언을 부탁 드립니다.
        • Alan Turing
          09/10
        • onsway@naver.com
          감사합니다!
        • 감사합니다
        • dlakffhs
          혹시 생성한 컨테이너에 docker run에서 줬던 옵션을 동일하게 줄 수 있나요?

          예를 들어, docker run -it ubuntu:16.04 /bin/bash 로 컨테이너를 실행하고, 나중에 이 컨테이너에 v 옵션을 통해 호스트에 마운트를 하고 싶은데, docker start -v /src/dir:/dst/dir [container] 와 같은 명령어는 지원하지 않더라고요.

          이렇게 이미 생성한 컨테이너에 명령어로 새로운 옵션을 추가로 줄 수 있는 방법이 있는지 궁금합니다.
        • Thomas
          윈도우에 ui툴 사용한버전 부탁해용
        • Bank in
          좋은 내용 감사합니다.
        • ricosuave
          도커에 관하여 개론적 내용들을 빨리 확인할 수 있었습니다.
          예전에 프로젝트 하면서 도커로 래핑된 오픈소스를 봤었는데
          학습할 시간이 없어 활용하지 못하고 패스했었는데
          여기서 만나니 반갑네요.
          내용이 좋은데 뭔가 영상이 인기가 덜한 것 같아 아쉽네요 ㅠ
        • mircom2
          docker 컨터이너에 IP 할당 방법좀 알려주세요.ㅜ.ㅜ
        • 이현진
          감사합니다.
        • pyrasis
          다음 슬라이드도 보시면 도움이 될겁니다.
          http://www.slideshare.net......477
        graphittie 자세히 보기