docker资料

docker版本分为企业版EE和社区版CE,企业版提供额外服务切收费,社区版分为stable和edge两种,每个版本更新stable,每个季度更新edge

(docker.io和docker以及docker-engine都是以前的老版本,下载都叫做docker-ce和docker-ee)

安装之前先卸载:apt-get remove docker.io或者apt-get remove docker.ce,然后:apt-get update

或者卸:

sudo apt-get purge docker-engine

sudo apt-get autoremove --purge docker-engine

rm -rf /var/lib/docker

首先下载对用版本https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/(可以命令为docker.deb)

安装前应该安装libltdl7和libsystemd-journal0(我使用的apititude命令)

命令:sudo aptitude install libsystemd-journal0和sudo aptitude install libltdl7(可以使用命令sudo apititude update更新下源)

1.安装docker

sudo apt-get update(更新apt-get)

sudo apt-get install \apt-transport-https \ca-certificates \curl \software-properties-common(安装更新工具)

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -(添加GPG key)

sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu \(lsb_release -cs) \stable"(添加docker仓库)

sudo apt-get update(更新apt包)

sudo apt-get install docker-ce

sudo docker run hello-world(测试是否成功)

sudo groupadd docker(创建docker组)

sudo usermod -aG docker $USER(让当前用户加入组)

然后要先注销账户,或者重启。修改docker组的权限:

sudo chown "$USER":"$USER" /home/"$USER"/.docker -R

sudo chmod g+rwx "/home/$USER/.docker" -R

2.安装nvidia-docker

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -(添加nvidia-docker仓库)

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(更新apt包)

sudo apt-get install -y nvidia-docker2(安装不成功尝试nvidia-docker)

sudo pkill -SIGHUP dockerd

3.准备发布版本的时候,就需要打包我们整个工程的Docker镜像。

首先我们去Docker Hub注册帐号,相当于云盘一样,注册好了就创建一个仓库,然后在本地构建Docker镜像后上传到仓库。

docker ps -l(显示当前docker容器ID)

docker commit 容器ID 用户名/仓库名(构建docker镜像)

docker images(查看以保存的镜像)

docker push 用户名/仓库名(上传docker镜像)

3.有了镜像之后就可以以这个镜像为基础创建一个容器并运行,运行命令为  sudo  docker run  -it  [镜像名/ID]

docker run -it   --network host  --privileged=true ubuntu:14.04(重点:运行镜像, privileged 参数功能,设置为true的时候,让docker的root拥有真正root的权限,可以调用宿主机硬件等; --network host实现与外界通信,实现下载和其他功能)

从主机复制到容器sudo docker cp host_path containerID:container_path

从容器复制到主机sudo docker cp containerID:container_path host_path

sudo docker cp /home2/RuanJian/cudnn-9.0-linux-x64-v7.1-2.tgz  707cc342e5b4:/root/(把cuda和cudnn文件复制进容器的root下)

sudo docker cp  /home2/RuanJian/Anaconda3-4.2.0-Linux-x86_64.sh  4ee1d5a29ca0:/conda-install/(在需要复制文件的父目录下打开命令行,且id为容器而不是镜像id)

修改名称 docker tag 容器id  新名字(然后就可以把旧的镜像以镜像名方式删除)

sudo docker exec -ti -u root ID  /bin/bash(进入容器并获取权限)

解决pull下来的镜像无法链接网络的问题增加:  --network host

备注(命令)

docker ps -a(查看所有容器,不加a查看运行的容器)

docker images(查看所有镜像)

docker restart  ID(根据id重启容器)

docker stop $(docker ps -a-q)  (停止所有容器)

docker rm ID(通过id删除容器)

docker rm $(docker ps -aq)  (删除所有容器)

docker rmi ID[或者镜像名]    (通过镜像名或者id删除镜像)

因为docker默认安装在/etc目录下的,会导致存储不足,如果docker是1.12或以上的版本,可以修改(或新建)daemon.json文件。修改后会立即生效,不需重启docker服务。

vim /etc/docker/daemon.json

{

"graph": "/new-path/docker"

}

报错:libcuda.so.1: cannot open shared object file: No such file or directory

你可能感兴趣的:(docker资料)