Showing posts with label docker. Show all posts
Showing posts with label docker. Show all posts

Monday, July 3, 2023

[docker]建立個人專屬的Docker image

 建立個人專屬的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

Sunday, October 3, 2021

[docker] How to setup personal build environment?

Check images

  docker image list

check your uid/gid

CMD: id johnny

uid=1099(johnny) gid=1099(johnny) groups=1099(johnny),133(docker)

start docker

CMD: docker run -it --name acesetup ace_env:v3 /bin/bash

root@2dac23d862a3:/#

add user

CMD: adduser johnny

finish password setting.

check your uid/gid in docker

CMD: id johnny

uid=1000(johnny) gid=1000(johnny) groups=1000(johnny)

uid/gid is differnet system & docker site. modify in docker container

CMD: usermod -u 1099 johnny

CMD: groupmod -g 1099 johnny

CMD: usermod -aG sudo johnny 

exit docker container, and save the modify. (TAG)

CMD: exit

CMD: docker commit -m "add user johnny" abcsetup ace_env:johnny

check image again

CMD: docker image list

update and commit docker

docker start abcenv_ace

docker attach abcenv_ace

mkdir -p /opt/compiler_tool/selinux-3.1/sbin

ln -s /usr/sbin/setfiles /opt/compiler_tool/selinux-3.1/sbin/setfiles

exit

docker commit -m "ln -s /usr/sbin/setfiles /opt/compiler_tool/selinux-3.1/sbin/setfiles" abcenv_ace_env:ace

docker rm abcenv_ace

docker run --name abcenv_ace--privileged -v /extspace:/extspace -it abc_env:ace /bin/bash

docker start abcenv_ace

docker attach abcenv_ace

remove setup container

docker rm abcsetup


update and commit docker

docker start abcenv_ace

docker attach abcenv_ace

apt install python2

ln -s /usr/bin/python2.7 /usr/bin/python

exit

docker commit -m "ln -s /usr/bin/python2.7 /usr/bin/python" abc_env:johnny

docker rm abcenv_ace

docker run --name abcenv_ace--privileged -v /extspace:/extspace -it abc_env:ace /bin/bash

[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

[docker] How to create docker image

1. 下載一個 ubuntu 18.04

  docker pull ubuntu:18.04

2. 進入docker

  docker run --name yoctoseed -it ubuntu:18.04 /bin/bash

3. 安裝關套件

過程中,會請你選擇一個區域(不確定有沒有什麼影響),選擇Asia,然後選 Taipei。

  wget -O gn http://storage.googleapis.com/chromium-gn/3fd43e5e0dcc674f0a0c004ec290d04bb2e1c60e 

  chmod 777 gn

  mv gn /usr/bin/gn

4. 補充

  apt-get install locales

  dpkg-reconfigure locales

請選擇158. en_US.UTF-8 UTF-8 ,然後選擇 3. en_US.UTF-8

  update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

完成後,將history清除即可退出docker

  history -c

  exit

5. 將容器轉出來

  docker export yoctoseed > mt7663_yocto.tar

6. 移植到其他主機

  cat mt7663_yocto.tar |docker import - mt7663_yocto


docker command

docker run \

-u johnny \

-v /usr/bin/hexdump:/usr/bin/hexdump:ro \

-v /etc/localtime:/etc/localtime:ro \

-v /mtk_proj/ref_mtkoss:/mtkoss \

-v /home/johnny:/home/johnny \

--name android_build \

-it android001:johnny /bin/bash

Sunday, September 5, 2021

[Docker] 無法透過wifi內網,連線到Docker主機??

 為什麼部分RD Workstation可以用內網(有線)進行SSH連線,但是透過無線(WIFI)就不可以呢?

原因

 

這是因為Docker 啟動後,會虛擬一張網路卡出來,而IP剛好是182.26.xxx.xxx,所以與公司的無線網路衝突。

解決辦法

  • 在/etc/docker/下,新增daemon.json
{
    "bip": "192.168.168.1/24"
}
  • 然後重啟即可
service docker restart

Tuesday, August 18, 2020

Docker 介紹

開發應用程式時可以專注開發應用,不需花太多的時間在安裝/運行環境的設置。

不同於虛擬機器 (virtual machine )一樣需要 虛擬機器監視器 (hypervisor) 模擬出軟體、韌體或硬體,反而直接運行在宿主機(host machine)的核心

Docker 可以做什麼?


n8n index

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