0 环境搭建
- 卸载旧版本
|
|
- 配置docker的yum库
|
|
- 安装docker
|
|
- 启动与校验
|
|
- 配置镜像加速
以阿里云容器镜像服务为例。
|
|
1 介绍
当我们利用Docker安装应用时,Docker会自动搜索并下载应用镜像(image)。镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker会在运行镜像时创建一个隔离环境,称为容器(container)。
镜像仓库:存储和管理镜像的平台,Docker官方维护了一个公共仓库:Docker Hub。
2 命令详解
案例:部署MySQL
|
|
docker run :创建并运行一个容器,-d 是让容器在后台运行
–name mysql :给容器起个名字,必须唯一
-p 3306:3306 :设置端口映射(宿主机端口映射到容器内端口)
-e KEY=VALUE :是设置环境变量
mysql :指定运行的镜像的名字,在没有指定tag时,默认是latest,代表最新版本的镜像
常见命令
Docker最常见的命令就是操作镜像、容器的命令,详见官方文档:docker官方文档
数据卷
数据卷(volume)是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。
命令 | 说明 | 文档地址 |
---|---|---|
docker volume create | 创建数据卷 | docker volume create |
docker volume ls | 查看所有数据卷 | docker volume ls |
docker volume rm | 删除指定数据卷 | docker volume rm |
docker volume inspect | 查看某个数据卷的详情 | docker volume inspect |
docker volume prune | 清除数据卷 | docker volume prune |
在执行docker run命令时,使用 -v 本地目录 : 容器内目录 可以完成本地目录挂载
本地目录必须以“/”或 “./” 开头,如果直接以名称开头,会被识别为数据卷而非本地目录
- -v mysql : /var/lib/mysql 会被识别为一个数据卷叫mysql
- -v ./mysql : /var/lib/mysql 会被识别为当前目录下的mysql目录
镜像结构
dockerfile
指令 | 说明 | 示例 |
---|---|---|
FROM | 指定基础镜像 | FROM centos:6 |
ENV | 设置环境变量,可在后面指令使用 | ENV key value |
COPY | 拷贝本地文件到镜像的指定目录 | COPY ./jre11.tar.gz /tmp |
RUN | 执行Linux的shell命令,一般是安装过程的命令 | RUN tar -zxvf /tmp/jre11.tar.gz && EXPORTS path=/tmp/jre11:$path |
EXPOSE | 指定容器运行时监听的端口,是给镜像使用者看的 | EXPOSE 8080 |
ENTRYPOINT | 镜像中应用的启动命令,容器运行时调用 | ENTRYPOINT java -jar xx.jar |
示例:
|
|
|
|
网络
加入自定义网络的容器才可以通过容器名互相访问,Docker的网络操作命令如下:
命令 | 说明 | 文档地址 |
---|---|---|
docker network create | 创建一个网络 | docker network create |
docker network ls | 查看所有网络 | docker network ls |
docker network rm | 删除指定网络 | docker network rm |
docker network prune | 清除未使用的网络 | docker network prune |
docker network connect | 使指定容器连接加入某网络 | docker network connect |
docker network disconnect | 使指定容器连接离开某网络 | docker network disconnect |
docker network inspect | 查看网络详细信息 | docker network inspect |
DockerCompose
Docker Compose通过一个单独的docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。
|
|
|
|
参数或指令 | 说明 |
---|---|
-f | 指定compose文件的路径和名称 |
-p | 指定project名称 |
up | 创建并启动所有service容器 |
down | 停止并移除所有容器、网络 |
ps | 列出所有启动的容器 |
logs | 查看指定容器的日志 |
stop | 停止容器 |
start | 启动容器 |
restart | 重启容器 |
top | 查看运行的进程 |
exec | 在指定的运行中容器中执行命令 |