Docker学习笔记
1 . Docker基本概念
- Docker是一个开源的应用容器引擎
- 诞生于2013年初 , 基于Go语言实现 , dotCloud公司出品(后改名Docker Inc)
- Docker可以让发布者打包他们的应用以及依赖包到一个轻量级 , 可移植的容器中 , 然后发布到任何流行的linux机器上
- 容器是完全使用沙箱机制 , 相互隔离
- 容器性能开销低
- Docker从17.03版本之后分为CE(社区版)和EE(企业版)
小结 : Docker是一种容器技术 , 解决软件跨环境迁移的问题
2 . 安装Docker
Docker可以运行在MAC , Windows , CentOS , UBUNTU等操作系统中 , 官网 : https://www.docker.com
# 1. 下载工具
yum install -y yun-utils
# 2 . 设置镜像的仓库
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #配置阿里云的镜像
# 3 . 更新yum软件包索引
yum makecache fast
# 4 . 安装docker相关配置
yum install docker-ce docker-ce-cli containerd.io
# 5 . 启动docker
systemctl start docker
# 查看当前版本号,是否启动成功
docker version
# 设置开机自启动
systemctl enable docker
3 . Dcoker架构

- 镜像(Image) : Docker镜像 , 就相当于一个root文件系统 , 比如官方镜像ubuntu:16.04就包含了完整的一套Ubuntu16.04最小系统的root文件系统。
- 容器(Container) : 镜像和容器的关系 , 类似于面向对象中类和对象 , 镜像是静态的定义 , 容器是镜像运行时的实体 , 容器可以被创建 , 启动 , 停止 , 删除 , 暂停等。
- 仓库(Repository) : 仓库可以看作一个代码控制中心 , 用来保存镜像;
4 . 配置Docker镜像加速器
默认情况下 , 如果从docker hub(https://hub.docker.com/)下载镜像 , 会导致速度太慢 , 一般会配置镜像加速器;
5 . Docker相关命令
5 . 1 服务相关
# 1 . 启动
systemctl start docker
# 2 . 查看docker状态 (主要是看Active是running还是dead)
systemctl status docker
# 3 . 重启
systemctl restart docker
# 4 . 开机自启
systemctl enable docker
# 5 . 停止
systemctl stop docker
5 . 2 镜像相关
# 1 . 查看本地镜像
docker images
docker images -q #查看所用镜像的id
# 2 . 搜索镜像
docker search 镜像
# 3 . 拉取镜像
docker pull 镜像:[版本号]
# 4 . 删除镜像
docker rmi 镜像id[或者镜像名:版本]
# 5 . 全部镜像删除
docker rmi `docker images -q`
5 . 3 容器相关命令
# 一 , 查看 , 创建 , 进入
# 1 . 创建容器 i表示一直运行 , t表示终端(自动进入容器,退出后容器会自动关闭)
docker run -i -t --name 名字 镜像名:版本 [进入容器的初始化指令 /bin/bash]
# 2. 查看正在运行的容器
docker ps
# 3 . 查看所有容器
docker ps -a
# 4 . 创建容器 d表示退出容器不会停止 这样不会直接进入容器内部
docker run -i -d --name=名字 镜像名:版本
# 5 . 进入容器内部
docker exec -i -t 名字 /bin/bash
# 二 , 启动 , 停止 , 删除 , 查看容器信息
# 1 . 启动容器
docker start 名字
# 2 . 停止容器
docker stop 名字
# 3 . 删除容器(启动的容器不能直接删除)
docker rm id或名字
# 4 . 删除所有容器
docker ps -aq
docker rm `docker ps -aq`
# 5 . 查看容器信息
docker inspect 名字
6 . Docker容器的数据卷
6 . 1 数据卷概念