
1.
Whatis Docker?
Docker 是一個開源的應用容器引擎。
Docker可以将我們的想要的環境建構(打包)成一個鏡像,然後我們可以推送(釋出)到網上去。想要用這個環 境的時候,在網上拉取一份就好了。
2.
Whywe need Docker?
2.1
環境(切換/配置)麻煩:使用Docker可以将環境封裝好,讓别人直接用Dockerfile建立出一個一模一樣的環境。
2.2
應用之間需要隔離:比如我寫了兩個應用(網站),這兩個應用部署在同一台伺服器上,第一個應用出現bug導緻cpu占用100%,這就導緻了伺服器上所有的應用都不能運作
3.虛拟機和Docker的
差別?(https://zhuanlan.zhihu.com/p/54512286)
Docker容器比虛拟機輕量多了
1、ubuntu18.04 apt 安裝docker(通過阿裡雲源) 1.更新apt庫sudo apt update
2.以下安裝使得允許apt通過HTTPS使用存儲庫 sudo apt install apt-transport-https ca-certificates curl software-properties-common
3.添加阿裡GPG秘鑰 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
4.添加阿裡docker源 sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
5.更新apt源 sudo apt-get update
6.安裝 sudo apt install -y docker-ce
7.檢視版本 docker --version
2、安裝nvidia-docker(在這之前,記得把電腦的NVIDIA Driver安裝好。) 1.安裝(github位址:https://github.com/NVIDIA/nvidia-docker#quick-start)
# Add the package repositories
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
2.啟用(一定要加上"--gpus all ",不然不會調用gpu)
sudo docker run -it --gpus all 鏡像名:版本号
3.輸入下面的指令,檢視是否可以調用nvidia driver資訊
nvidia-smi -l
3、Docker的使用 1.删除容器
sudo docker rmi -f {Image ID}
Image ID可以通過sudo docker images 指令檢視
2.根據Dockerfile建立容器
sudo docker build --tag common:1.0 .
其中,common:1.0為容器名:版本号,可以根據自己的需要更改,如myubuntu
3.運作容器
#不帶顯示卡的docker
sudo docker run -it --rm common:1.0
#帶顯示卡驅動的docker
sudo docker run -it --gpus all common:1.0
4.清理鏡像(http://dockone.io/article/3056)
我們在使用 Docker 一段時間後,系統一般都會殘存一些臨時的、沒有被使用的鏡像檔案,可以通過以下指令進行清理
sudo docker image prune -a
5.檢視docker占用的磁盤空間
sudo docker system df
6.檢視docker安裝的image和ID
sudo docker images
4、将本地建立好的Docker鏡像上傳到阿裡雲,友善其他上電腦下載下傳 1.登入阿裡雲容器鏡像服務,注冊登入(https://cr.console.aliyun.com/cn-hangzhou/instances/repositories)
2.建立鏡像倉庫
3.點選倉庫名稱,可以看到Tutorial(詳細操作可以繼續往下看)
4.登入阿裡雲Docker Registry(然後輸入密碼)
sudo docker login --username=yourname registry.cn-hangzhou.aliyuncs.com
5.将本地鏡像推送到Registry
sudo docker login --username=15267434480 registry.cn-hangzhou.aliyuncs.com
sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/hx_demo/common:[鏡像版本号]
sudo docker push registry.cn-hangzhou.aliyuncs.com/hx_demo/common:[鏡像版本号]
請根據實際鏡像資訊替換示例中的[ImageId]和[鏡像版本号]參數。
6.從Registry中拉取鏡像
sudo docker pull registry.cn-hangzhou.aliyuncs.com/hx_demo/common:[鏡像版本号]
n、其他的一些小tip 1.在dockerfile中更換pip install的源 在Dockerfile目錄下建立一個檔案pip.conf,内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
在Dockerfile中添加
COPY pip.conf /etc/pip.conf
2.存在很多tag為none的image(當image建立失敗的時候,docker中會出現一個tag為none的image),非常占用電腦的存儲空間 使用docker system df指令,用于檢視Docker的磁盤使用情況:
sudo docker system df
使用以下指令可以删除,無tag的鏡像
sudo docker system prune
慎用!!! 所有Docker鏡像都删掉
docker system prune -a
3.Docker Hub(https://hub.docker.com/) 裡面有很多官方做好的鏡像,可以在這個基礎上面做自己的專屬鏡像,可以節省很多時間。
4.怎麼寫DockerFile:參考:https://yq.aliyun.com/articles/735190?spm=5176.12281978.0.0.37724127kv0DYV
——————————————————————————————
如果内容有幫助到您,希望大家多多
點贊+收藏+關注!!!
經常會在知乎中分享自己的學習筆記,和大家
一起學習進步!!!
有問題大家可以在評論區打出,一定
及時給大家
回複!!!
筆記連結:http://note.youdao.com/s/aEXbhJ9d
——————————————————————————————