Sunday, October 3, 2021

[docker] Docker image

建立個人專屬的Docker image

  確認系統中,是否有docker image?

  USERNAME@PC:~$ docker images

 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

 android11_en1227         latest              7812c92c2149        2 months ago        7.33GB

查詢自己的UID,因為Docker啟動後,需要存取你在系統的檔案資料,所以需要同步UID

USERNAME@PC:~$ id USERNAME 

uid=1009(USERNAME) gid=1009(USERNAME) groups=1009(USERNAME),133(docker)

啟動Docker容器

docker run -it --name android_build_env android11_en1227:latest /bin/bash

在Docker容器內,新增使用者 (輸入跟本機相同帳號密碼)

root@CONTAINER ID:/#adduser USERNAME

=====================================================

Adding user `USERNAME' ...

Adding new group `USERNAME' (1000) ...

Adding new user `USERNAME' (1000) with group `USERNAME' ...

Creating home directory `/home/USERNAME' ...

Copying files from `/etc/skel' ...

Enter new UNIX password: YOUER PASSWORD

Retype new UNIX password: YOUER PASSWORD

passwd: password updated successfully

Changing the user information for hunglin

Enter the new value, or press ENTER for the default

        Full Name []: USERNAME

        Room Number []: 

        Work Phone []: 

        Home Phone []: 

        Other []: 

Is the information correct? [Y/n] Y

查詢UID,如果與本機不同,請接續下面command修改

id USERNAME Ex. uid=1001(USERNAME) gid=1001(USERNAME) groups=1000(USERNAME),121(docker)

修改UID/GID,與本機相同

usermod -u 1019 USERNAME 

groupmod -g 1019 USERNAME

修改完成後,再透過id command確認,確認後,執行exit離開docker

儲存該階段docker容器

>>> 取得docker容器ID <<<

USERNAME@TPVPC:~$ docker ps -a

CONTAINER ID        IMAGE                  COMMAND             CREATED             STATUS                   PORTS               NAMES

7812c92c2149  android11_en1227:latest   "/bin/bash"         20 hours ago        Exited (0) 22 hours ago                       android_build_env


>>> 將這個docker打一個新的tag <<<

USERNAME@PC:~$ docker commit -m "commit message” CONTAINER_ID IMAGE:new_tag


ex. docker commit -m "add USERNAME" 7812c92c2149 android11_en1227:USERNAME

儲存後,將剛剛的docker容器停掉並卸載

停止容器

docker stop [nick_name or id]

ex. docker stop t32_build_env


卸載容器

docker rm [nick_name or id]

ex. docker rm t32_build_env

No comments:

Post a Comment

n8n index

 【n8n免費本地端部署】Windows版|程式安裝x指令大補帖  【一鍵安裝 n8n】圖文教學,獲得無限額度自動化工具&限時免費升級企業版功能