Ubuntu Docker安裝
參考官網:https://docs.docker.com/install/linux/docker-ce/ubuntu/
目前對新的ubuntu版本: 16.04. 18.04. 18.10,19.04都支持
博主Ubuntu版本:19.04
1、卸載老版本
沒有安過的可以跳過
$ sudo apt-get remove docker docker-engine docker.io containerd runc
2、從倉庫安裝Docker社區版
2.1 配置倉庫
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
2、安裝Docker-ce
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
3、測試
按理到這裏就可以了,運行sudo docker run hello-world
進行測試即可,但由於默認的源在國外,有時會連接超時,測試不成功,所以一般都會配置國內的鏡像加速器。
3.1、配置阿里雲鏡像加速器
登陸阿里雲–>搜索容器鏡像服務 -->如果你第一次使用會彈出如下界面讓開通服務,按操作開通即可。
完成以後,點擊左下的鏡像加速器,選擇對應的操作系統,然後將配置指令在終端依次執行完成即可。
3.2 再運行sudo docker run hello-world
,看到這個說明你的docker安裝和運行都OK了。
祝好運!!
3 Docker常用命令
命令都需要在root權限執行, ctenos 直接運行命令,ubuntu , 命令前+ sudo
-
1 基本命令
docker version docker info docker --help
-
2 鏡像命令
docker images [options]
: 查看本地主機上的鏡像列表
REPOSITORY TAG IMAGE ID CREATED Size 鏡像倉庫源 鏡像版本標籤 鏡像ID 鏡像創建時間 鏡像大小 [optiions]爲可選參數:
options -a 列出本地所有的鏡像(含中間映像層) -q 只顯示鏡像ID -
docker search [options] 鏡像名
查看鏡像源eg: docker search unbuntu
eg: docker search -s 30 ubuntu
-
docker pull 鏡像名 [:TAG]
從源拉取鏡像 -
docker rmi -f 鏡像名 [: TAG]
強制刪除單個鏡像- docker rmi -f name1 name2
- docker rmi -f $(docker image -qa ) 刪除所有
-
3 容器命令
-
docker pull ubuntu : 拉下一個ubuntu的鏡像
-
1、新建並啓動容器:
docker run [OPTIONS] IMAGES [COMMAND]
- OPTIONS
- –name = “容器新名字”
- -i: 啓動交互式容器
- -t:僞終端
- –rm :容器結束會自動刪除
eg:
docker run -it --name myubuntu
IMAGE ID IMAGE ID 對應ubutu鏡像ID -
2、 列出當前所有正在運行的容器:
docker ps [OPTIONS]
-
eg: docker ps [-l],[-n]
-
容器關閉退出: exit | Ctrl+D
-
容器不關閉退出: ctrl+q+p ,
再次進入 docker attach 容器名或ID
不進入容器進行命令:docker exec -it 容器ID bash
-
-
3 重啓容器:
docker restart 容器名或容器ID
-
4 關閉容器 docker stop/skill 容器名或容器ID
-
5 刪除容器 docker rm 停止的容器名或ID
-
-
3 其他命令
- 後臺啓動容器: docker run -d 鏡像名或ID
- 從容器拷貝文件: docker cp 容器ID localdir
- eg: docker cp containerId:/file localdir
-
4 定製自己的鏡像: 通過提交自定義的容器成爲新的鏡像,或通過Dockerfile構建鏡像
docker commit -m="描述信息" -a="作者" 容器ID 新的鏡像名:TAG
2 Docker容器數據卷
-
容器數據卷: 即將容器數據持久化下來的文件
-
-v命令實現 容器和宿主機共享文件
-
docker run -it -v /mydataVolume:/dataVolumeContainer ubuntu
touch host.txt
-
docker run -it -v /mydataVolume:/dataVolumeContainer ro ubuntu 容器只讀
-
-
volumes from :容器間數據共享
做個需要容器化的項目,再回來看這些就很簡單了,常用的命令主要是:
- 測試命令:
docker run --rm --name test -v localdir:containerdir imageID
- 關閉再進入:
docker exec -it containerName bash
- 交互測試:
docker run --rm -it --name test imageID
- 部署命令:
docker run -d --restart=always -e ENV="var" -v localfile:containerfile --name service imageID
- 帶GPU部署
docker run -d --gpus ' "device=1" ' -e PYTHONIDCODING=utf-8 -p 800:8000 --name service imageID
`--rm`: 容器結束後,會刪除對應的容器,不用自己在`docker rm containerID`
`--name`: 指定容器名字
`-v` : 將宿主機上的文件或目錄掛載(影射)到指定容器
`--restart` : 是否重啓重啓選項
`--gpus` : 指定顯卡,docker-version: 19.03
`-e` : 設置環境變量