百度百科:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
简单地说,docker可以方便地帮我们实现虚拟化、更便捷地实现相关应用的移植,也是个比较热门的趋势。
关于Docker在Windows或Linux平台上的安装网上很多教程,这里就不多说了,直接上实例。
查找镜像,以Ubuntu为例:
sudo docker search ubuntu
下载镜像,建议直接pull官方版的而不是修改版的(已经pull过了就不再演示了):
sudo docker pull ubuntu
查看docker镜像:
sudo docker images
可以看到有相应的TAG标签和镜像id。
运行docker镜像:
sudo docker run -it -d --name ubuntu_test -p 8088:80 ubuntu
-d参数为后台运行,--name参数为自定义容器名,-p参数为指定端口映射、后者为容器的端口。
注意到成功后台运行后会返回一个容易的id,在这里只需要记住前两位即88即可。
查看所有启动的容器(若查看所有的容器则添加-a参数即可):
sudo docker ps
查看容器信息:
sudo docker inspect id
查看docker状态:
sudo docker stats id
进入一个正在运行的容器:
sudo docker exec -it ubuntu_test /bin/bash
或sudo docker exec -it id /bin/bash
这里顺便进行Ubuntu源的更换为阿里源,以便后面安装程序的速度更快:
查看Ubuntu版本:
cat /etc/issue
可知版本是16.04
到相应的目录先备份原来的源:
接着先更新源以便可以下载安装vim来修改文件:
apt-get update
apt-get install vim
将源文件置空:echo ‘’ > sources.list
vim sources.list
然后将以下Ubuntu16.04的阿里源内容复制进去即可:
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
接着更新一下:
apt-get update
apt-get upgrade
再下载点东西看看就知道速度确实变快了。
退出容器,然后停止容器运行:
exit
sudo docker stop id
制作docker镜像:
sudo docker commit id ubuntu_aliyun:1.0
冒号后面的1.0为版本号,要添加的,就像在前面查看镜像images时的TAG。
查看镜像是否创建:
虽然制作了镜像,但是只能在宿主机使用而不能在其他机器上使用,这时就可以打包镜像:
sudo docker save -o ubuntu_aliyun.tar ubuntu_aliyun:1.0
-o参数是输出的意思
再查看本地文件:
这样,就只需要将该tar文件发给其他主机,然后解压就可以使用镜像了。
先通过docker ps -a查看已经关闭的容器及其id:
然后删除容器:
sudo docker rm id
即删除容器之前必须先关闭容器。
删除镜像:
sudo docker rmi -f id
不加id删除全部
删除所有停止运行的容器:
sudo docker rm $(sudo docker ps -a -q)
宿主机代码在容器中运行:
sudo docker run -it --rm -v /home/cimer/test.py:/tmp/test.py ubuntu:1.0 /usr/bin/python /tmp/test.py
查看容器log:
sudo docker logs -f -t --tail=5 ubuntu
-f同tail的-f一样,-t显示产生的时刻,--tail=5显示最后5行
查看容器进程:
sudo docker top ubuntu
容器的开机自启动:
sudo docker run -it --restart=always ubuntu
至于容器链接和互联等的操作后面再补充~