iT邦幫忙

2024 iThome 鐵人賽

DAY 1
0

想當初剛進實驗室的時候,第一件遇到的事就是怎麼使用記中的server,通常大家共同使用的server都會灌一個名為docker的小鯨魚,目的就是為了讓大家各自建立自己的環境,而不會互相影響,也不會汙染到server本地端的環境,是一個好用且必學的東西。

如果你是已經有一個ubuntu系統,上面已經安裝好docker,那可以直接跳到第二步。
如果你想重頭安裝,那麼可以從第一步開始。

1. docker 安裝 (Ubuntu Linux)

只需使用apt就可以安裝docker了,然後可以透過下一行來觀察docker的狀況,如果正常會有綠色的active(running)

sudo apt install docker-io
service docker status

但後續需要使用nvidia的GPU,需要再照以下網址安裝即可
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
https://ithelp.ithome.com.tw/upload/images/20240805/20168446XopoVbKqwP.png

2. docker 起 container

docker 當中有兩個名詞是比較常聽到的:

  1. images: 可以把它想像成是已經有人幫你環境都包好好了,你只需要下載來做使用
  2. container: 將下載好的images透過docker run或docker compose等等指令來start他

語法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

可以透過以下指令直接起一個有ubuntu環境的container,如果本沒有對應的image,那麼會直接幫你從網路上下載
sudo docker run -i -t ubuntu

當中run後面會接蠻多-i -t -d -v -p…等參數,讓我一一來介紹或參考https://www.runoob.com/docker/docker-run-command.html

  1. -it: 互動的(interactive)終端(terminal)
  2. -d: 背景執行,並返回container ID
  3. -v: 類似建立捷徑的概念,格式為 host_dir: container_dir
  4. -p: port對應,格式為 host_port: container_port
  5. --name: 替你的container取個名字,通常我會取 你的名字_任務名稱_cuda版本,比如: jeremy_enhance_cuda122
  6. --gpus all: 讓container內部可以使用GPU,可以帶all,或指定特定的GPU編號
  7. --shm-size: 有時候訓練model在dataloader的時候,如果沒有設定會報錯,通常會設個16gb(看記憶體大小)

最後我自己起一個開發環境會用以下的指令,port會多開幾個,用於api ssh tensorboard,直接使用pytorch的image可以去 https://hub.docker.com/r/pytorch/pytorch
找到適合你機器的image

sudo docker run --name jeremy_enhance_cuda122 -d -v /home/jeremy/enhance:/ws -p 9000:9000 -p 9022:22 -p 9066:6066 --shm-size=16gb --restart unless-stopped pytorch/pytorch:2.3.0-cuda12.2-cudnn8-devel

第一天大概到這邊,本人第一次寫文章,如果有誤歡迎提出,如果有空後續會持續更新~~


下一篇
[Day2] 環境架設 - 2
系列文
菜鳥AI工程師給碩班學弟妹的挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言