1. Docker介绍
1.1 Docker概述
- Docker是一个开源的应用容器引擎
- 诞生于2013年初,基于Go语言实现,dotCloud公司出品(后改名为Docket Inc)
- Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上
- 容器是完全使用沙箱机制,相互隔离
- 容器性能开销极低
- Docker从17.03版本之后分为CE(Community Edition:社区版)和EE(Enterprise Edition:企业版)
1.2 安装Docker
- Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,这里我们基于CentOS7安装
- 官网:https://www.docker.com
- 安装步骤
# 1、yum 包更新到最新 yum update # 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 yum install -y yum-utils device-mapper-persistent-data lvm2 # 3、 设置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 4、 安装docker,出现输入的界面都按 y yum install -y docker-ce # 5、 查看docker版本,验证是否验证成功 docker -v
1.3 Docker架构
- 镜像(Image)
- Docker镜像(Image),就相当于是一个root文件系统,比如官方镜像
- 容器(Container)
- 镜像(Image)和容器(Contain er)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等
- 仓库(Repository)
- 仓库可以看成一个代码控制中心,用来保存镜像
2. 配置镜像加速器
- 默认情况下,从docker hub上下载docker镜像太慢了,所以我们会配置镜像加速器
- USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)
- 这里我们使用阿里云镜像
- 步骤
- 登录阿里云(https://www.aliyun.com/)
- 选择容器镜像服务
- 选择镜像加速器
- 配置文件 /etc/docker/daemon.json
- 查看文件 /etc/docker/daemon.json
cat /etc/docker/daemon.json
3. Docker命令
3.1 服务相关命令
- 启动docker服务
systemctl start docker
- 停止docker服务
systemctl stop docker
- 重启docker服务
systemctl restart docker
- 查看docker服务状态
systemctl status docker
- 开机启动docker服务
systemctl enable docker
3.2 镜像相关命令
- 查看镜像
# 查看本地所有的镜像 docker images # 查看所用镜像的id docker images -q
- REPOSITORY:镜像名称
- TAG:镜像标签
- IMAGE ID:镜像ID
- CREATED:镜像的创建日期
- SIZE:镜像大小
- 搜索镜像
# 从网络中查找需要的镜像 docker search 镜像名称
- NAME:镜像名称
- DESCRIPTION:镜像描述
- STARS:用户评价,反映一个镜像的受欢迎程度
- OFFICIAL:是否官方
- AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程构建的
- 拉取镜像
docker pull 镜像名称
- 从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本。 如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。
- 删除镜像
docker rmi 镜像id # 删除指定本地镜像 docker rmi `docker images -q` # 删除所有本地镜像
3.3 容器相关命令
- 查看容器
docker ps # 查看正在运行的容器 docker ps –a # 查看所有容器,包括正在运行和停止的容器
- 创建并启动容器
docker run 参数
- 参数说明
- -i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
- -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
- -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
- -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
- –name:为创建的容器命名。
- 交互式容器
- 以交互式方式来创建并启动容器,启动完成后,直接进入当前容器,使用exit命令退出容器,需要注意的是以此种方式启动容器,如果退出容器,则容器会进入停止状态
# 先拉取一个镜像;这一步不是每次启动容器都要做的,而是因为前面我们删除了镜像,无镜像可用所以才再拉取一个 docker pull centos:7 #创建并启动名称为 mycentos7 的交互式容器;下面指令中的镜像名称 centos:7 也可以使用镜像id docker run -it
- 参数说明