【技術分享】基本Dockerfile寫法與Command Line

Posted by BO-CHENG SU on 2023-09-11
Estimated Reading Time 2 Minutes
Words 482 In Total
Viewed Times
  1. 首先準備一個 Dockerfile,這邊給一個簡單的範例:

    • Dockerfile
      1
      2
      3
      4
      5
      6
      7
      8
      //這是python image
      FROM python:3.11

      //把 requirement.txt複製到container中
      COPY requirement.txt requirement.txt

      // 執行pip install 指令
      RUN pip install -r requirement.txt
    • requirement.txt
      1
      pandas==2.0.0
  2. 在cmd中打開執行以下指令,用來建立 image

    1
    docker build -t <name:tag> .

    Note:如果你沒有要安裝其他套件,可以直接pull別人的image。

  3. 查看自己的 image 有哪些

    1
    2
    3
    docker image ls 
    or
    docker images

  4. 建立 Container 並執行

    1
    docker run -it --name <name> <image> bash
    • --name <name> :替你的container取名
    • -i:代表交互式模式(interactive mode)
    • -t:分配一個虛擬終端給容器給你操作
    • -d:在背景執行
      -t-i-t可以混用,如:-it-itd
    • bash:進到bash操作(也可以換成sh運行shell指令)

    結果如下圖:

    如果要掛載一個與Container共用的資料夾可以做以下操作:

    1
    docker run -it --name <name> -v <路徑>:/app <image>  bash

    例如說:docker run -it --name admin -v C:/Users/bc200/OneDrive/桌面/fortest/test:/app test bash,本機端的test資料夾就會與container中的app資料夾共用,只要修改本機端test內容就會修改app的內容。

    執行 python test.py即可運行程式:

    exit就可以離開container
    (請注意這時會結束容器的運行)

  5. 啟動/結束容器可以使用:

    1
    2
    3
    4
    // 啟動容器
    docker start <Container ID> or <Container Name>
    // 結束容器
    docker stop <Container ID> or <Container Name>

    這裡啟動/結束容器可以使用容器ID或是你有設定container Name也可以使用名稱

  6. 進入到容器內部:

    1
    docker exec -it <Container ID> <bash or sh>
  7. 查看有哪些容器正在運行:

    1
    docker ps

    (加上-a就是看目前所有容器)

  8. 刪除 image 或 Container:

    1
    2
    3
    4
    // 刪除 image
    docker rmi <image ID>
    // 刪除 container
    docker rm <container ID>

其他Docker指令:
https://medium.com/alberthg-docker-notes/docker筆記-docker基礎教學-7bbe3a351caf