0、Docker
1.What
Docker 是一个开源的应用容器引擎。
Docker可以将我们的想要的环境构建(打包)成一个镜像,然后我们可以推送(发布)到网上去。想要用这个环 境的时候,在网上拉取一份就好了。
2.Why
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
——————————————————————————————
有问题大家可以在评论区打出,一定及时给大家回复!!!
——————————————————————————————