# 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up