docker是个类似虚拟机的东西,但是比虚拟机好用,更轻量级。而且可以直接使用系统硬件,比如gpu。在很多时候,如果有一个docker image,可以省去很多配置环境,安装依赖包等的繁琐工作。
docker的简单教程:
http://www.runoob.com/docker/ubuntu-docker-install.html
本文介绍一下在ubuntu 14.04下docker的安装和使用
1. 安装
Docker 支持以下的 Ubuntu 版本:
Ubuntu Precise 12.04 (LTS)
Ubuntu Trusty 14.04 (LTS)
Ubuntu Wily 15.10
其他更新的版本……
Docker 要求 Ubuntu 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 Ubuntu 版本是否支持 Docker。
通过 uname -r 命令查看你当前的内核版本
uname -r
使用脚本安装 Docker:
wget -qO- https://get.docker.com/ | sh
输入当前用户的密码后,就会下载脚本并且安装Docker及依赖包。
安装完成后有个提示:
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:
sudo usermod -aG docker runoob
Remember that you will have to log out and back in for this to take effect!
当要以非root用户可以直接运行docker时,需要执行 sudo usermod -aG docker xxx
命令,然后重新登陆,否则会有如下报错,xxx为非root用户用户名。如果不执行以上命令,在使用docker时,请加sudo。
启动docker 后台服务:
sudo service docker start
测试运行hello-world
docker run hello-world
也可以按照官方文档进行安装,不过过程较为繁琐:
https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/
2. 运行docker镜像
列出本地镜像
sudo docker images
ituring@T7610:~/Download$ sudo docker images
[sudo] password for ituring:
REPOSITORY TAG IMAGE ID CREATED SIZE
tensorflow/tensorflow latest 02f42dc11beb 12 days ago 1.17GB
tensorflow/tensorflow latest-gpu a1afa03550aa 12 days ago 2.89GB
hello-world latest 1815c82652c0 3 weeks ago 1.84kB
bamos/openface latest 7e537bef9341 4 weeks ago 2.54GB
kaixhin/cuda-caffe 8.0 f8f286d16016 2 months ago 3.5GB
以上是我本地的镜像
如果要使用hello-world镜像来运行容器时,命令如下:
ituring@T7610:~/Download$ sudo docker run -t -i bamos/openface /bin/bash
root@8a016d290da7:/#
看到用户已经从ituriing变为root了。
3. 在docker和主机之间拷贝文件
1.查看docker id
sudo docker ps -s
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
c667e21b5a23 bamos/openface "/bin/bash" 9 minutes ago Up 9 minutes 0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp festive_lalande 28.1kB (virtual 2.54GB)
c667e21b5a23就是CONTAINER ID。
从主机拷贝文件到容器:
sudo docker cp /home/ituring/Download/ituring.tar.gz ceed456b5d23:/root/openface/images
从容器拷贝文件到主机:
sudo docker cp ceed456b5d23:/root/openface/nohup.out /home/ituring/Download
3. 停止容器
sudo docker stop ceed456b5d23
4. 删除镜像
参考这篇博客;
http://blog.csdn.net/fancivez/article/details/51374609
docker删除容器的命令是rm,删除镜像的命令是rmi
要删除镜像,必须先删除它对应的容器,删除容器前需要停止该容器。
先使用以下命令查看容器和镜像id
sudo docker ps -a
得到
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
117843ade696 ed9c93747fe1 /bin/sh -c /usr/sbin 46 hours ago Up 46 hours 0.0.0.0:49153->22/tcp test_sshd
可以看出ed9c93747fe1的image被117843ade696的container使用着,所以必须首先删除该container
sudo docker stop 117843ade696
删除容器
sudo docker rm 117843ade696
删除镜像
sudo docker rmi ed9c93747fe1
得到
Deleted: ed9c93747fe16627be822ad3f7feeb8b4468200e5357877d3046aa83cc44c6af
Deleted: c8a0c19429daf73074040a14e527ad5734e70363c644f18c6815388b63eedc9b
Deleted: 95dba4c468f0e53e5f1e5d76b8581d6740aab9f59141f783f8e263ccd7cf2a8e
Deleted: c25dc743e40af6858c34375d450851bd606a70ace5d04e231a7fcc6d2ea23cc1
Deleted: 20562f5714a5ce764845119399ef75e652e23135cd5c54265ff8218b61ccbd33
Deleted: c8af1dc23af7a7aea0c25ba9b28bdee68caa8866f056e4f2aa2a5fa1bcb12693
Deleted: 38fdb2c5432e08ec6121f8dbb17e1fde17d5db4c1f149a9b702785dbf7b0f3be
Deleted: 79ca14274c80ac1df1333b89b2a41c0e0e3b91cd1b267b31bef852ceab3b2044
删除成功
5. 利用docker file构建镜像
6. docker教程
非常好的docker教程:
https://github.com/yeasy/docker_practice