建立個人專屬的Docker image
依 V8 images 為基準,新增 1 個 REPOSITORY
Step1: 查詢自己的UID,因為Docker啟動後,需要存取你在系統的檔案資料,所以需要同步UID
#id johnnysu
uid=1002(johnnysu) gid=1002(johnnysu) groups=1002(johnnysu),133(docker)
Step2: 確認系統中,是否有docker image?
#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nvt_env v8 0b4f165032d4 4 days ago 8.56GB
...
Step3: 啟動Docker容器
#docker run -it --name nvtenv_johnnysu_v8 nvt_env:v8 /bin/bash
Step4: 在Docker容器內,新增使用者 (輸入跟本機相同帳號密碼)
#adduser johnnysu
Step5: 修改UID/GID,及 sudo,與本機相同
usermod -u 1002 johnnysu
groupmod -g 1002 johnnysu
sudo usermod -aG sudo johnnysu
Step6: 修改完成後,再透過id command確認,確認後,執行exit離開docker。
Step7:儲存該階段docker容器
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a953d7b4cb02 nvt_env:v8 "/bin/bash" 10 minutes ago Exited (0) 10 minutes ago nvtenv_johnnysu_v8
...
>>> 將這個docker打一個新的tag <<<
USERNAME@TPVPC:~$ docker commit -m "commit message” CONTAINER_ID IMAGE:new_tag
ex. docker commit -m "set johnnysu has the sudo privileges" a953d7b4cb02 nvt_env:v8
Step8: check Docker image
#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nvt_env johnnysu_v8 60b12cdc221c 10 minutes ago 8.56GB
Step 9: 使用 docker image
docker run -it -u johnnysu \
--privileged \
-v /extspace/ktm_proj/ref_ktmoss:/ktmoss \
-v /usr/bin/hexdump:/usr/bin/hexdump:ro \
-v /etc/localtime:/etc/localtime:ro \
-v /home2/johnnysu:/home2/johnnysu \
-v /extspace/johnnysu:/extspace/johnnysu \
-v /extspace/ktm_proj/gitmirror:/extspace/ktm_proj/gitmirror \
--name nvtenv_johnnysu_2k24_v8 \
-it nvt_env:johnnysu_v8 \
/bin/bash
Step 10: docker容器
#docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bd9379e13420 nvt_env:johnnysu_v8 "/bin/bash" 26 seconds ago Exited (0) 7 seconds ago nvtenv_johnnysu_2k24_v8
a953d7b4cb02 nvt_env:v8 "/bin/bash" 20 minutes ago Exited (0) 19 minutes ago nvtenv_johnnysu_v8
Step 11: 移除不要的 docker容器
#docker container rm a953d7b4cb02
Step 12: 使用 docker 容器
#docker start bd9379e13420
#docker attach bd9379e13420