2018-10-26笔记
Docker中的容器,可以看作是将程序 + 运行环境的打包后的新程序。这时候,你就不用关心你的程序的运行环境了,因为容器里面的环境就是你当时开发环境的一个拷贝。
Docker环境搭建
我是Ubuntu16.04(64位),先在终端执行lsb_release -cs
(我的输出结果是xenial),访问下载地址,依次选择xenial/pool/stable/amd64/
,选择要下载的版本,复制链接地址,
$ wget https://download.docker.com/linux/ubuntu/dists/$(lsb_release -cs)/pool/stable/amd64/docker-ce_18.06.1~ce~3-0~ubuntu_amd64.deb
$ dpkg -i docker-ce_18.06.1~ce~3-0~ubuntu_amd64.deb
$ sudo usermod -aG docker $USER #将用户加入docker组,避免每次都要sudo
重启终端,不然还是需要sudo
$ docker run hello-world
docker-hello-world.png
注:可能会保存因为依赖包没有安装,根据错误信息安装即可
添加镜像源
主要是加速作用,不然可能有时候会卡半天。
$ sudo vi /etc/docker/daemon.json
$ sudo cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] #国内镜像源
}
$ sudo systemctl enable docker #设置开机启动
$ sudo systemctl daemon-reload #重新加载配置
$ sudo systemctl restart docker #重启docker
docker-compose
这个Python程序可以方便地管理多个Docker实例组成的分布式服务。
$ sudo apt install python3-pip
$ sudo pip3 install docker-compose
Docker简单使用
运行容器
$ docker run hello-world
- 这个命令首先会检查本地是否有
hello-world
容器 - 如果没有就通过
image
创建,其中image
就是容器的模板(一个二进制文件),docker run image_name
,实际上就是创建一个image
实例,最后容器也就是一个文件。(也就是说,image
就像相当于类,容器
相当于类实例) - 如果本地没有
image
就从docker的仓库下载下来 - 创建一个新的容器,并且启动容器
列出运行中容器
$ docker container ls #列出运行中的容器
$ docker container ls -all #列出全部容器
docker-containers.png
第一个字段是
ID
,用来标识容器实例,因为一个image
可以生成多个容器。
结束容器运行
$ docker container kill $Container_ID #强行结束运行中的容器,这个主要用来针对作为服务运行的容器
删除容器
容器在结束运行后,一般不会自动删除,除非image
中进行了配置,或者在run
的使用使用了-rm
。那么删除容器的命令是:
$ docker container rm $Container_ID
清理命令
docker 1.13开始 的清理命令
$ docker container prune -f #删除所有停止容器
$ docker image prune -f -a #删除所有镜像
删除none镜像
none 镜像是一些没有成功build
的临时镜像,删掉即可。
$ docker rmi $(docker images -f "dangling=true" -q)
Docker还有很多强大功能,暂时我也只用到这几个而已了。
网友评论