sudo apt-get remove docker docker-engine docker.io
从 Ubuntu 14.04 开始,一部分内核模块移到了可选内核模块包 ( linux-image-extra-* ) ,以减少内核软件包的体积。正常安装的系统应该会包含可选内核模块包,而一些裁剪后的系统可能会将其精简掉。 AUFS 内核驱动属于可选内核模块的一部分,作为推荐的 Docker 存储层驱动,一般建议安装可选内核模块包以使用 AUFS 。如果没有安装的话可以使用下面的命令安装
sudo apt-get update
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
由于发现新的安装方法,docker ce不用再装了,直接使用 sudo snap install docker
但是该方法只适用于装docker,后面的nvidia-docker2安装会依然显示错误,看个人需求了
安装过程有很多源分为国内和官方,建议国内源,因为官方源国内连不上。
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用HTTPS 传输的软件包以及 CA 证书。
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
国内源
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
官方源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
国内源
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
官方源
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
更新 apt 软件包缓存,并安装 docker-ce
sudo apt-get update
sudo apt-get install docker-ce
启动
sudo systemctl enable docker
sudo systemctl start docker
测试docker是否安装成功
sudo docker run hello-world
创建用户组
sudo groupadd docker
添加用户进入docker组,以便该用户可以使用docker
sudo gpasswd -a ${USER} docker
重启服务
sudo service docker restart
如果设置完成,万一还是需要sudo才能执行docker命令,则执行如下命令
newgrp - docker
sudo usermod -aG docker your_usernames
该步骤可能会出现重启服务失败的可能,如果硬盘够大,网络够好,也可以不设置
打开daemon.json
cd /etc/
sudo vim docker/daemon.json
修改如下,其中https://cwoel6s9.mirror.aliyuncs.com
为从阿里服务器申请的镜像地址,/data/docker
为存放目录
{
"registry-mirrors": [
"https://cwoel6s9.mirror.aliyuncs.com"
],
"graph":"/data/docker",
"storage-driver": "overlay",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
重启docker,并使用docker info查看修改信息
systemctl daemon-reload
systemctl restart docker
docker info
添加源
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
安装nvidia-docker2软件包并重新加载Docker守护程序配置:
sudo apt-get install nvidia-docker2
sudo pkill -SIGHUP dockerd
安装完成后,当需要使用gpu时,使用nvidia-docker代替docker
ubuntu18.04安装有一些差异,可以使用下面代码安装:
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - && \
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && \
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-docker2 && \
sudo pkill -SIGHUP dockerd
导出docker:
docker save -o java8.tar lwieske/java-8
导入docker:
docker load < java8.tar
建立容器
docker run -it ubuntu:14.04 bash
查看容器
docker ps
建立后台运行容器使用-itd
参数,此时再次进入该容器,使用docker ps
查看,并执行如下进入容器
docker exec -it 775c7c9ee1e1 bash
注:当需要使用gpu时,使用nvidia-docker代替docker
本人日常使用deepo镜像,并进行后台运行(-itd
),端口映射(-p 4445:6006
),本地目录映射至容器-v /data/mengzb/project:/home
,命名容器名称--name py36
,使用gpu,nvidia-docker
nvidia-docker run -itd --name py36 -p 4444:22 -p 4445:6006 -p 4446:8888 -v /data/mengzb/project:/home ufoym/deepo
docker exec -it py36 bash