一、简述
Docker 是一个开源的应用容器引擎,可以让开发者将应用及其依赖打包在一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 是一个轻量级的容器解决方案,其容器可以共享同一个 OS,而不是像传统的虚拟化方案那样每个容器都需要一个单独的 OS。这使得 Docker 容器比虚拟机更轻便、更快速,更加适合开发测试、CI/CD、微服务等场景。
Docker 在应用容器化上面做得非常棒,支持应用的开发、测试、分发和部署、容器的管理、监控等全生命周期管理,可以极大地提高生产力,而且 Docker 生态圈庞大,有非常多的镜像供大家使用,非常方便快捷。
二、安装
安装步骤:
1、在官网下载对应操作系统的 Docker 安装包。
2、安装 Docker。
3、配置 Docker 镜像加速,在阿里云、DaoCloud 等云服务上可以免费获取加速器地址,在命令行添加下面的命令就可以使用加速器了:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三、使用
使用 Docker 只需要了解下面的概念就可以开始了:
- 镜像:Docker 镜像是 Docker 容器运行时的基础组件,类似于虚拟机的映像文件,可以理解为是一种轻量级的虚拟机,但 Docker 镜像开销比虚拟机映像文件要小得多,启动快得多。镜像是 Docker 运行容器时的模板。
- 容器:Docker 容器是镜像运行起来的实例,Docker 通过容器来运行和管理应用程序。容器是一个独立的运行单元,在隔离的环境下运行。容器的启动和终止都非常迅速和轻量级。
- 仓库:Docker 仓库是用于存储、分发 Docker 镜像的仓库,类似于代码版本控制仓库。Docker 仓库可以是公共的或私有的,公共的 Docker 仓库比较著名的是官方的 Docker Hub。
下面是使用 Docker 的一些常用命令:
# 拉镜像
docker pull [image-name]
# 查看所有本地的镜像
docker images
# 删除镜像
docker rmi [image-id]
# 运行容器
docker run [container-name]
# 查看所有运行中容器
docker ps
# 查看所有容器
docker ps -a
# 删除容器(只能删除停止的容器)
docker rm [container-id]
四、优劣势
Docker 的主要优势:
1、Docker 在应用容器化上面做得非常棒,支持应用的开发、测试、分发和部署、容器的管理、监控等全生命周期管理,可以极大地提高生产力。
2、Docker 容器共享同一个 OS,启动快、占用资源少,比虚拟机更轻便、更快速,更加适合开发测试、CI/CD、微服务等场景。
3、Docker 生态圈庞大,有非常多的镜像供大家使用,非常方便快捷。
Docker 的主要劣势:
1、Docker 网络模式不够稳定,多节点之间的网络故障排查困难。
2、Docker 使用 cgroups 和 namespace 等 Linux 内核特性,其稳定性和安全性无法与传统虚拟化方案相比。
3、Docker 环境不支持 GUI 应用程序。