docker知识5:在WSL2的ubuntu20.04环境安装使用docker
提要:
本文是關(guān)于docker的專題討論,作者用一組文檔盡可能保證完整地闡述Docker到底是啥?如何使用?docker的使用范圍等。相關(guān)的其它文章是:
Docker知識1:Docker-hub簡介
Docker知識2:安裝docker-desktop
Docker知識3:Docker的體系簡介
Docker知識4:如何在win10下安裝 / 使用ubuntu ?應(yīng)用WSL2
1 安裝docker
因?yàn)閣sl2已經(jīng)完整使用了linux內(nèi)核了,此種方式和先前在linux安裝docker類似,步驟如下:
$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh $ sudo service docker start執(zhí)行腳本安裝過程中,腳本提示“建議使用Docker Desktop for windows”,20s內(nèi)按Ctrl+C會(huì)退出安裝,所以需要等待20s,另外此種方式需要訪問外網(wǎng)。
2 檢查docker安裝正常
# 檢查dockerd進(jìn)程啟動(dòng)
sudo service docker status
sudo ps aux|grep docker
# 檢查拉取鏡像等正常
sudo docker pull busybox
sudo docker images
注意:不同于完全linux虛擬機(jī)方式,WLS2下通過apt install docker-ce命令安裝的docker無法啟動(dòng),因?yàn)閃SL2方式的ubuntu里面沒有systemd。上述官方get-docker.sh安裝的docker,dockerd進(jìn)程是用ubuntu傳統(tǒng)的init方式而非systemd啟動(dòng)的。
3 docker服務(wù)的systemd指令和sysvinit指令
wsl2 沒有systemd指令,而是sysvinit指令,雙方對照表為:
| Systemd 命令 | Sysvinit 命令 |
| systemctl start service_name | service??service_name start |
| systemctl stop service_name | service??service_name stop |
| systemctl restart service_name | service??service_name restart |
| systemctl status service_name | service??service_name status |
| systemctl enable service_name | chkconfig?service_name on |
| systemctl disnable service_name | chkconfig?service_name off |
4 常用幾個(gè)操作語句
- 打開ubuntu后常規(guī)語句是
?sudo service docker start
該語句啟動(dòng)了Docker-engine.
- 接著登錄遠(yuǎn)程的Docker-Hub
sudo docker login
- 查看Docker-hub上有啥新鮮鏡像,比如,我要一個(gè)tensorflow的模塊。
sudo search tensorflow
顯示docker-hub上大量的tensorflow鏡像。
- 隨便拉一個(gè)下來( 比如 下面三個(gè) )
sudo docker pull tensorflow/tensorflow:latist
sudo docker pull tensorflow/tensorflow:1.9.0-d
sudo docker pull theshadowx/qt5
- ?查看是否已經(jīng)被下載到本地
sudo docker images
- ?啟動(dòng)一個(gè)容器
sudo docker run -it -p 7777:7777 --name tf-1.99 tensorflow/tensorflow:1.9.0-devel-py3
?注意:1)啟動(dòng)容器后面的參數(shù)“tensorflow/tensorflow:1.9.0-devel-py3”是個(gè)鏡像
? ? ? ? ? ? 2)將端口換換(將7777:7777換成8888:8888) 重復(fù)此語句,將出現(xiàn)兩個(gè)相同容器,端口不通。
- 查看啟動(dòng)后容器
?sudo docker ps
- 查看所有容器
sudo docker ps?-a
- 進(jìn)入容器內(nèi)部
法1 : sudo docker exec -it? 62e188e9e750 /bin/bash
法2 : sudo docker exec -it? tf-1.9? /bin/bash
注意,此句中的?62e188e9e750是通過,sudo docker ps?-a查看到的容器ID號。tf-1.9是通過sudo docker ps?-a查看到的容器名稱。執(zhí)行失敗多是因?yàn)?沒加 /bin/bash
- 從容器中退出
exit
- 查看容器的整長度ID號
sudo docker ps --no-trunc -a?
- 刪除某些容器
sudo docker container prune
- 刪除本地image鏡像
sudo docker rmi? image-name
5 文件交換
我們存在這樣的問題,已經(jīng)跑好的Win10項(xiàng)目,如何移植到WSL2下的ubuntu內(nèi)部的container中去,因此需要子啊列操作:將做好的項(xiàng)目存放在Win10下某個(gè)盤,我這里存到e:盤根目錄。
sudo? cp -r /mnt/e/MNIST_test? ? /home/huatec
這就將整個(gè)項(xiàng)目(在e:/MNIST_test下)全部挪到WSL2的ubuntu中了。
然后,再將此項(xiàng)目移植到container中。
sudo docker ps --no-trunc
顯示container的ID全稱?
sudo docker cp /home/huatec/MNIST_test? 62e188e9e7509f520cd7609f04c9c522c634b5bf9238b43eb23433e7081fe092:/home
這樣將全部的項(xiàng)目導(dǎo)入在運(yùn)行的container內(nèi)部。?
總結(jié)
以上是生活随笔為你收集整理的docker知识5:在WSL2的ubuntu20.04环境安装使用docker的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的QT5:如何用QT5实现菜
- 下一篇: Docker知识6:实战!将一个tens