安装
Docker-CE
安装过程参考,Ubuntu中如下:## 1. 从仓库安装$ sudo apt-get update# 使apt使用https的仓库$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common# 添加docker的官方GPG Key$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -# 验证$ sudo apt-key fingerprint 0EBFCD88pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88uid Docker Release (CE deb)sub 4096R/F273FCD8 2017-02-22# 添加稳定版仓库$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"# 再次update$ sudo apt-get update# 安装docker-ce,这一步比较慢,清华的源也是在官网下载安装的$ sudo apt-get install docker-ce# hello world$ sudo docker run hello-world## 1.1 安装其他可用版本# 显示可用版本$ apt-cache madison docker-ce# 指定版本$ sudo apt-get install docker-ce= ## 2. 从deb包安装# 从https://download.docker.com/linux/ubuntu/dists/选择对应的发行版本,进入pool/stable/amd64,下载一个合适的版本$ sudo dpkg -i /path/to/package.deb
nvidia-docker
nvidia-docker用于运行基于GPU的程序,参考.# 删除nvidia-docker1.0的容器,卸载nvidia-docker1.0docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -fsudo apt-get purge -y nvidia-docker# 添加仓库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.listsudo apt-get update# 安装nvidia-docker2,重新加载docker daemon的配置sudo apt-get install -y nvidia-docker2sudo pkill -SIGHUP dockerd# 测试nvidia-smi命令docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
- 安装nvidia-docker2之后的/etc/docker/daemon.json
{ "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } }}
免sudo运行docker命令
- 创建docker组
$ sudo groupadd docker
- 添加当前用户到该docker组
$ sudo usermod -aG docker $USER
- 注销后重新登录
- 运行hello-world程序进行测试。如果提示以下错误:
WARNING: Error loading config file: /home/user/.docker/config.json -stat /home/user/.docker/config.json: permission denied
原因是在当前用户加入docker
组之前以sudo
权限配置了docker,配置目录~/.docker/
的权限是sudo
的。解决方法有两个:
- 删除
~/.docker/
,重新配置 - 用下面的命令更改权限
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R$ sudo chmod g+rwx "/home/$USER/.docker" -R
ustc mirrors
在/etc/docker/daemon.json中添加新的项,使用中科大的docker镜像:
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]}
然后重启docker服务
sudo service docker restart
service failed
Fixing the Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. problem, for me this worked:
- sudo rm -rf /var/lib/docker
- create daemon.json in /etc/docker/
- put this in it: { "exec-root": "/path/to/docker/run", "storage-driver": "overlay", "graph": "/path/to/docker/lib" }
- systemctl start docker
- docker run --rm hello-world