Docker的安装与使用--基于Ubuntu
1. Docker的安装
参考教程:
2. Docker的使用
深度学习推荐拉取镜像库Deepo
看前提醒:有任何疑问,可用$ docker help 解决
菜鸟教程-Docker的使用
镜像的应用
镜像的拉取
docker pull ufoym/deepo:tensorflow-py36-cu90
国内源:
docker pull docker.mirrors.ustc.edu.cn/ufoym/deepo:tensorflow-py36-cu90
容器转换为镜像(container→image)
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
示例:
yannqi@yannqi-X6Ti-Series-GH5KN51:~$ docker commit -a “yannqi” -m “tensorFlow2” 91ff39e16730 tensorflow2.0:tf2.0
sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057
yannqi@yannqi-X6Ti-Series-GH5KN51:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tensorflow2.0 tf2.0 0e7c5393060e 7 hours ago 5.18GB
查看本地已安装镜像
docker images
删除本地已安装镜像
docker rmi < ImageID >
容器的使用
查找已安装容器
docker ps -a
查找正在运行的容器
docker ps
启动容器
docker run -it /bin/bash
我的使用 注意:docker 19.0+version 已经配备了NVIDIA docker ,无需重复安装
sudo docker run --gpus all -p 8888:22 --name yannqi -v /home/yannqi/A_qiqi_store:/workspace/yannqi -it ufoym/deepo:tensorflow-py36-cu90
出现了问题,还是之后安装NVIDIA-driver试试吧
注:-p[容器端口:宿主机端口]
–name [容器名]
-v [宿主机路径:容器内路径]
-it :不后台运行 –i:后台运行
ufoym/deepo:tensorflow-py36-cu100 repository 来源:TAG 标签
参数说明:
-i: 交互式操作。
-t: 终端。
ubuntu: ubuntu 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
启动一个已经停止的容器
docker start
容器后台运行
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
docker run -itd --name /bin/bash
注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec
参数说明:
-d:参数默认不会进入容器,想要进入容器需要使用指令 docker exec
-i: 交互式操作。
-t: 终端。
ubuntu: ubuntu 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
停止一个容器
docker stop <容器 ID>
进入容器
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
docker exec -it /bin/bash
更多问题请寻求 docker exec --help
导入导出容器
导出容器
docker export > ubuntu.tar
导出容器 快照到本地文件 ubuntu.tar。
这样将导出容器快照到本地文件。
导入容器快照
可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
删除容器
docker rm -f
下面的命令可以清理掉所有处于终止状态的容器。
docker container prune
3.docker与pycharm结合*
注意: Pycharm 要用专业版.可学生注册.
Ubuntu18.04下Docker与pycharm的结合使用
4. 问题集锦
Ubuntu 系统盘空间满,迁移docker到其它目录
参考解决方案
日益变大的/var/lib/docker
随着docker的使用,我的阿里云服务器/var/lib/docker文件夹越来越大。由于主盘比较小,所以我额外挂了一块ESB。然后希望把docker以及其他比较大的数据迁移到这块ESB上.
步骤
- 更改docker daemon的启动参数
$ sudo gedit /lib/systemd/system/docker.service
将
ExecStart=/usr/bin/docker daemon -H fd://
改成
ExecStart=/usr/bin/docker daemon -g /new/path/docker -H fd://
- stop docker并重载设置
service docker stop
systemctl daemon-reload
- 迁移/var/lib/docker中的文件到新盘
rsync -aqxP /var/lib/docker/ /new/path/docker #这一步时间较长,耐心等待
- 重启docker
service docker start
- 删除原目录下docker
出现报错:(code=exited, status=1/FAILURE)
参考的下面五篇blog解决了
11
22
33
44
55