# Docker Desktop Tutorial > [name=徐冠東(gordondonghsu.ee10@nycu.edu.tw)] ## Download 官網下載: https://www.docker.com/products/docker-desktop/ (安裝以Desktop為範例,但不一定要使用Desktop版本) --- ## Setting-Enable Virtualization 1. By BIOS: https://www.youtube.com/watch?v=ZDeje9wgDp4 (see how to enable virtualization) 2. By Console:  --- 接下來就是打開cmd or Windows PowerShell (windows可改用: https://reurl.cc/WvvDQL) 載入image指令: ```linux= $ docker pull <image_file> ``` Ex: ```linux= $ docker pull ubuntu:22.04 ``` 也可在docker desktop下載image  --- ### 創建container指令: ```linux= $ docker run -itd --name <container_name> --hostname <host_name> -v <host_path>:<virtual_path> <image_file> ``` (其實還有個-p的port連結指令,這裡不需用到) EX: ```linux= $ docker run -itd --name AUV_ros --hostname Sayori -v C:\Users\Sayori\Volume01:/home/src ubuntu:22.04 ``` (volume觀念參考: https://www.youtube.com/watch?v=p2PH_YPCsis) Ps: 這裡host_path跟virtual_path是共用資料夾的,可以用來分享資料! ### 輸出成image: 創完container後就可以自己設定環境了~如果未來想把自己設定的環境備份 ```linux= $ docker commit <container_name> $ docker images -a $ docker tag <image_ID> <new_image_name> ``` 第二行指令是要確認新image的ID為多少,如圖:  (參考: https://linuxhint.com/save-docker-container-as-image/) --- ## 解決在wsl2中無法使用docker desktop的問題 依下圖的指示增加設定。  ### 之後以下為可能的報錯,表示目前的使用者身分沒有權限。: ``` Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&shmsize=0&t=ocms_server&target=&ulimits=null&version=1": dial unix /var/run/docker.sock: connect: permission denied ``` ### 解決辦法: 1. 建立 docker 群組 ```=linux $ sudo groupadd docker ``` 2. 如果一開始就已經有群組的話,就則會告知下方訊息 ``` groupadd: group 'docker' already exists ``` 3. 將非 root 帳號加上 docker 群組中 ```=linux $ sudo gpasswd -a {$USER} docker ``` 成功訊息 ``` Adding user admins to group docker ``` 4. 讓這個帳號立刻改成使用 docker 這個群組 ```=linux $ newgrp docker ``` 重新開啟後,就可以使用了。 ## 啟動/停止container 啟動: ``` $ docker start {container_name} ``` 停止: ``` $ docker stop {container_name} ``` ## 使用push指令 記得先在自己的docker hub裡建立相對應的Repositories的名稱: 以下例子的話,就是要建立叫"my-ubuntu-images"的repository,後面還可以選擇tag的數字。 ``` $ docker tag ubuntu:22.04 yourusername/my-ubuntu-images:22.04 $ docker push yourusername/my-ubuntu-images:22.04 ``` --- ## 開放device權限 ``` $ docker run -it --device=/dev/ttyUSB0:/dev/ttyUSB0 my-image ``` --- ## 詳細可參考網址: 1. 基本概念 (1) https://glints.com/tw/blog/docker-basic-tutorial/ (2) https://mailtojacklai.medium.com/cs-docker%E7%9A%84%E4%B8%89%E5%80%8B%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5-image-container-%E5%92%8Cregistry-89844595a7a6 2. 指令參考 https://firstsun.pixnet.net/blog/post/36246949-docker-basic-commands 3. 別人的影片筆記 https://github.com/twtrubiks/docker-tutorial 4. [Docker] 建立群組 https://quietbo.com/2022/06/06/docker-%E5%BB%BA%E7%AB%8B%E7%BE%A4%E7%B5%84-got-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket-at-unix%E8%A7%A3%E6%B1%BA/ 5. Docker Desktop: https://hackmd.io/Xmf4DouoS_aSnE2nZZuZQg 6. permission denied錯誤 https://quietbo.com/2022/06/06/docker-%E5%BB%BA%E7%AB%8B%E7%BE%A4%E7%B5%84-got-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket-at-unix%E8%A7%A3%E6%B1%BA/ 7. 解除無法登入docker hub的問題: https://stackoverflow.com/questions/65896681/exec-docker-credential-desktop-exe-executable-file-not-found-in-path 8. push分享指令: https://larrylu.blog/share-image-on-dockerhub-ccb7d9b26fa8 --- ## 其他指令 1. docker build https://docs.docker.com/engine/reference/commandline/build/
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.