Docker介绍
Docker 起源于2013年。
Docker 是一个开源的应用容器引擎,基于 Go语言开发,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的系统。
优点:
- 可以用来快速交付应用。加快打包时间,加快测试,加快发布,缩短开发及运行代码之间的周期。
- 复杂环境管理,应用隔离:不同软件运行环境兼容依赖问题,开发环境/测试环境/线上环境保持一致。
- 轻量级:对于系统内核来说,一个docker只是一个进程,一个系统可以运行上千个容器。
Docker 与虚拟机的区别:
- 容器与容器之间只是进程的隔离,而虚拟机是完全的资源隔离,包括内存、服务等。
- 虚拟机的启动可能需要分钟级别(启动os),Docker 启动是秒级或者更短(不用启动os)。
- 容器使用宿主操作系统的内核,而虚拟机使用完全独立的内核。
虚拟机
容器
概念
- Docker 镜像: Docker Images,每一个镜像都可能依赖一个或多个下层的镜像组成的另一个镜像,AUFS 文件系统。
- Docker 仓库: Docker Registry,集中存放镜像的地方。
- Docker 容器: Docker Containers,镜像运行后的进程
Docker安装
linux-centos安装步骤:
安装依赖: yum install -y yum-utils device-mapper-persistent-data lvm2
添加源: yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker: yum -y install docker-ce
启动Docker:systemctl start docker
查看Docker:docker ps
查看Docker版本: docker version
docker 常用命令
docker info 查看镜像、容器等信息
镜像管理
- 查看所有镜像: docker images
- 搜索镜像: docker search 镜像名
- 拉取下载: docker pull 镜像名:版本(不指定版本默认下载最新版本)
- 导出: docker save 镜像名 > 导出名称.tar
- 导入: docker load < 导出名称.tar
- 删除: docker rmi 镜像名:latest
- 更改镜像名: docker tag 镜像名:latest 镜像名:test
- 查看镜像创建历史:docker history 镜像名
容器管理
- 运行容器: docker run -d --name=容器自定义名称 容器名:版本 ping 114.114.114.114
- 查看运行的容器: docker ps,docker ps -a(查看所有容器,包含未运行的)
- 查看容器中运行的进程: docker top 容器
- 查看资源占用: docker stats 容器
- 容器: docker start/restart/stop/kill 容器
- 暂停容器: docker pause 容器
- 强制删除容器: docker rm -f 容器
- 执行命令: docker exec -it 容器 bash
- 复制文件: docker cp 容器:/etc/hosts hosts
- 查看容器日志: docker logs -f 容器
- 查看容器/镜像的元信息: docker inspect 容器/镜像
- 格式化输出:docker inspect -f '{{.Id}} ' 容器/镜像
- 查看容器内文件结构:docker diff 容器