向docker官网推送镜像包之前先到https://hub.docker.com/进行注册,在服务器上准备好镜像之后使用docker login登录。
root@testMC:/home/# docker login Username: you username Password: passwd
在服务器上登录docker输入账号密码后提示报错:
Error saving credentials: error storing credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY`。
按提示的意思是无法存储信用凭证。
网上有多种方法,比如切到.docker目录等都不好使,在stackoverflow.com 上的一个评论里找到一个可行的办法。地址:https://stackoverflow.com/questions/42787779/docker-login-error-storing-credentials-write-permissions-error
解决办法:Install the following packages to solve this issue.
root@testMC:/home/# apt install gnupg2 pass
GnuPG是GNU Privacy Guard的缩写,它是一个完全开源自由的OpenPGP标准(由RFC4880定义)实现。pass 是 Linux上的一个简单的命令行密码管理器,它将密码存储在一个gpg加密后的文件里。这些加密后的文件很好地组织按目录结构存放。
登录成功后会提示密钥凭证存储在如下位置, 可以进行配置关闭这个提示。
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
向docker官网推送镜像包之前需要将本地docker镜像名修改为你在为docker官方注册的用户名,因为官方镜像仓库是以用户名来命名仓库的。
你上传只能传到你自己仓库里。如果命名不对会上传的话会得到报错denied: requested access to the resource is denied,即权限被拒绝。
然后执行docker push命令即可。docker添加tag使用docker tag命令,如果要删除某个镜像的tag,使用docker rmi -f如下:
root@testMC:/home/# docker tag fastapi-gunicorn-server:v1.0 kermitcode/fastapi-gunicorn-server:v1.0
root@testMC:/home/# docker push kermitcode/fastapi-gunicorn-server:v1.0
#删除tag
root@testMC:/home/# docker rmi -f kermitcode/fastapi-gunicorn-server:v1.0
另一个小问题。是关于Docker容器:在ubuntu的docker容器中使用apt install python-pip 安装PIP的时候出现报错404 Not Found [IP: 91.189.91.39 80]。使用apt-get update命令更新源时,也出现了上述的无法下载的错误。
但是,并不是所有的软件都无法更新,而是剩下的一部分无法更新。最后运行了如下命令解决了。
#检查是否有损坏的依赖
apt-get check
#更新已安装的包
apt-get upgrade
docker启动使用gpu的容器提示报错:docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
我这里的服务器系统是Ubuntu18.04,问题是出在未安装nvidia-container-toolkit或nvidia-container-runtime(它包含nvidia-container-toolkit)。安装nvidia-container-toolkit需要添加nvidia-docker源,操作如下:
root@testMC:~/# distribution=$(. /etc/os-release;echo $ID$VERSION_ID) root@testMC:~/# curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add OK root@testMC:~/# curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list root@testMC:~/# apt-get update root@testMC:~/# apt-get install nvidia-container-toolkit #gpus选项提示 root@testMC:~/# $ docker run --help | grep -i gpus --gpus gpu-request GPU devices to add to the container ('all' to pass all GPUs) #安装好后可通过如下命令(两个之一都可以)在官方CUDA镜像上测试nvidia-smi root@testMC:~/# docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi root@testMC:~/# docker run --gpus all --rm nvidia/cuda nvidia-smi Status: Downloaded newer image for nvidia/cuda:latest
安装好后通过上面任一命令在官方CUDA镜像上测试nvidia-smi,镜像启动成功并能正常显示GPU信息。可以指定使用几块GPU或指定使用哪块GPU进行工作。
#启动支持两块GPU的容器
$ sudo docker run –gpus 2 nvidia/cuda nvidia-smi
#指定某块GPU运行容器
$ sudo docker run –gpus device=0 nvidia/cuda nvidia-smi
上一篇:DNS域名解释服务器
下一篇:tomcat漏洞修复