什么是Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是使用沙箱机制,相互之间没有任何接口,更重要的是容器性能开销极低。
优点:
- 快速部署
- 响应式部署和扩展
- 隔离性好
- 成本低
Github Docker 源码:https://github.com/docker/docker-ce
安装
使用官方安装脚本自动安装
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
使用yum 安装
yum install docker-ce #repo中默认只开启stable仓库
yum install <FQPN>
可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
启动并加入开机启动
systemctl start docker
systemctl enable docker
查看版本
docker version
docker常用命令
启动docker
systemctl start docker
重启docker
systemctl restart docker
关闭docker
systemctl stop docker
查看所有容器名(包括被kill掉的)
docker ps -a
查看所有容器名(运行中的)
docker ps
启动某个容器
docker start 容器名
停止某个容器 ps :7991ef2284a2为容器id
docker stop 7991ef2284a2
docker rm是删除容器,docker rmi是删除镜像。
docker rm7991ef2284a2
找到需要删除的容器对应的 container ID 或者名字,进行删除:
docker container rm container ID
docker stop $(docker ps -a -q) // stop停止所有容器 docker rm $(docker ps -a -q) // remove删除所有容器
docker 服务器开机自启动:
systemctl is-enabled docker.service
检查服务是否开机启动
systemctl enable docker.service
启动服务 systemctl
systemctl start docker.service
禁止开机启动
systemctl stop docker.service
停止
systemctl restart docker.service
重启 容器开机启动:创建容器时候指定restart参数:
docker run -it -p 6379:6379 --restart=always --name field_blog_redis -d redis
如果创建时未指定 --restart=always ,可通过update 命令,对已经创建的容器用
docker update 更新:
docker update --restart=always xxx
--restart具体参数值详细信息 :
no - 容器退出时,不重启容器
on-failure - 只有在非0状态退出时才从新启动容器
always - 无论退出状态是如何,都重启容器
停止docker服务
systemctl stop docker
rm -rf /var/lib/docker/*
卸载旧版本的包
yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
再次安装
yum install docker-ce