Docker
安装与配置
Docker 有利于更轻松的部署,更一致的运行环境,同时相比传统的虚拟机,开销更小
基本概念:镜像 image、容器 container、仓库 repository
从仓库获取镜像,从镜像启动容器
国内镜像源:
- 阿里云加速器(点击管理控制台 -> 登录账号(淘宝账号) -> 右侧镜像工具 -> 镜像加速器 -> 复制加速器地址)
- 网易云加速器
https://hub-mirror.c.163.com
- 百度云加速器
https://mirror.baidubce.com
Docker 也有 hello world:
|
镜像
Docker Hub 上有大量镜像,获取的方法是:
|
docker image ls
列出镜像,docker image rm 镜像名或 ID
删除镜像
Dockerfile 定制镜像
构建方法:
|
常见指令:
FROM
指定镜像RUN
执行指令COPY
用于将构建的上下文目录中的文件复制到容器中CMD
和RUN
功能类似,常见的写法:CMD ["可执行文件", "参数1", "参数2"...]
WORKDIR
切换工作目录,注意CMD
不是真正的命令行,不能使用cd
切换工作目录ENV
设置环境变量,ENV <key> <value>
容器
启动容器有两种方式:
- 新建并启动:
docker run
- 启动已终止容器:
docker container start
分配伪终端 -t
,让标准输入保持打开 -i
,后台运行 -d
,
exec
能够进入容器
数据管理
一般来说,容器产生的数据都会保持在容器中,但是对于数据库之类则不然,通常需要 volume
来连通外部
这样即使容器被删除了,数据也不会丢失
使用方法为:-v volume名:容器中的数据路径
挂载本机目录:-v 本地目录:容器中的数据路径
网络
外部访问容器:-p 外部端口号:容器内部端口号
容器互联
创建网络:docker network create -d bridge my-net
运行容器并连接到网络:--network my-net
Docker Compose
Dockerfile
可以定义一个单独的应用容器,但通常需要多个容器互相配合,这时候 docker-compose.yml
就很有用了
模板文件常见的写法:
|
运行方法:docker compose up
,可以加上 -d
等参数,如果不想容器被重新创建,可以加上 --no-recreate