ubuntu docker的安装
命令行直接输入
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装完成后需要, 下载docker基础镜像, 这里选择具有cuda的docker镜像,连接:https://hub.docker.com/r/nvidia/cuda/tags/
下载docker镜像
docker pull nvidia/cuda:10.2-runtime-ubuntu18.04
查看目前有的docker images
docker images
结果如图所示,gaze_jtl那个是我自己封装的docker,pull下来的nvidia/cuda就在这里了。
进入docker容器
有些教程直接就教如何构建dockerfile,但是对于为这个初学者,docker是个什么东西还不知道直接搭建dockerfile容易一脸蒙蔽,所以这里进入docker容器中配置自己的环境。
新建并进入docker:容器我们刚才下载了nvidia/cuda的docker镜像,通过下面这个命令进入nvidia/cuda镜像的容器。
docker run -it nvidia/cuda:10.2-runtime-ubuntu18.04 bash
如下图所示,我们进入了这个容器,前面d76365e160c0就是当前这个容器的id,容器内就是一个新的系统,什么也没有,需要重新装过,在docker容器内输入exit可以退出来.
但是!!!退出这个容器后并不代表这个容器就被删除了!!!终端输入以下代码可以查看当前容器。
sudo docker ps -a
可以看到我后台有三个docker容器在运行,前面的id号对应了容器
重新进入容器:用exit退出容器后,容器默认是被停止的,首先需要重新打开容器,然后在接入
docker start id #开启容器
docker attach id #接入容器
#docker stop id #停止容器
又重新进入到了刚才那个容器内
docker容器内部配置
新的docker容器内什么都没有需要自己安装,我这边以我自己的程序为例,在容器中配置python 环境
sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list #添加阿里云
apt-get update -y
apt-get install -y python3-pip python3-dev #安装python环境
将本地的文件复制到docker镜像中
注意:1. 在ubuntu的终端进行复制操作!注意不是在容器的命令行下! 2. docker cp命令可以复制文件夹。3. xxx是文件名,d76365e160c0是id要对应自己的容器的id
docker cp /home/jtl/xxx d76365e160c0:/home/
然后你会在docker容器的home下看到复制进去的xxx文件,和ubuntu一样,用requirement.txt来安装配置环境。
pip3 install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
配置好以后可以试一试程序能否运行
docker封装
要将自己配置好的docker容器封装为镜像,同样在终端的命令行下使用commit, id是对应容器的id,name是镜像的名字,version是版本。
sudo docker commit -p id name:version
#例如 sudo docker commit -p 855700270a32 gaze_jtl:520
封装后可以在docker images下看到,然后下次就可以直接进入封装好的docker了