docker安装
linux系统通用(要先安装curl)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装成功后可以使用以下命令查看安装结果
docker info
成功时示例如下
[图片上传失败…(image-d5ca34-1635148680468)]
镜像管理
搜索镜像
docker search 镜像名
获取镜像
docker pull 镜像名
查看本地镜像
docker images
自定义镜像
想要在官方镜像上加一些扩展,比如软件环境时,我们可以在官方镜像的基础上生成一个自定义的镜像。生成步骤如下:
-
创建Dockerfile
示例
Dockerfile文件编写如下
FROM alpine // 基础镜像使用alpine RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories \ && apk add --no-cache <package> // 执行命令
常用命令
-
FROM
指定基础镜像
-
RUN
执行终端命令
-
COPY
拷贝文件到镜像的文件系统
-
ENV
设置环境变量
-
CMD
容器启动后运行的命令
-
-
镜像生成
命令用法
docker build [OPTIONS] PATH
PATH是构建目录,执行时会从PATH中找Dockerfile
常见OPTIONS:
-
-t
指定自定义镜像的名字和版本号
示例
docker build -t myimage:v1.0 ./
镜像生成后使用
docker images
查看 -
容器管理
创建并运行容器
docker run [OPTIONS] 容器名
常见OPTIONS:
-
-it
创建一个终端
-
-d
后台运行
-
-p
-p 宿主机端口:容器端口
端口映射
-
-v
-v 宿主机目录:容器目录
文件挂载
-
–restart=选项
-
always
总是重启容器
-
on-failure
非正常退出重启
-
-
–name 容器名
指定容器名称
示例
docker run -itd -p 6379:6379 -v /etc/redis/conf/redis.conf:/etc/redis.conf -e TZ:"Asia/Shanghai" --restart=always --name myRedisContainer redis
操作容器
docker attach 容器名 // 使用ctrl+c会直接停止容器
docker exec -it 容器名 bash // 使用ctrl+c命令不会停止容器,需要命令行输入exit退出,容器也不会停止
容器文件拷贝
-
拷贝宿主机文件到容器
docker cp 宿主机文件路径 容器名:容器文件路径
-
从容器拷贝文件到宿主机
docker cp 容器名:容器文件路径 宿主机文件路径
停止容器
docker stop 容器名|容器ID
删除容器
docker rm 容器名|容器ID
查看容器日志
docker logs 容器名|容器ID
使用docker-compose管理容器
安装
apt install docker-compose
编写配置
基本结构
version: "3" // 版本号
services:
nginx: // 配置某个容器,名称随意
image: "nginx:alpine" // 配置容器的属性
容器常见配置属性
-
image
容器使用的镜像
-
volumes
容器的文件挂载
-
restart
配置容器守护
-
environment
配置环境变量
-
command
配置容器启动后执行的命令
-
build
配置自定义镜像
示例
version: "3"
services:
nginx:
image: "nginx:alpine"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./vue:/opt/hygk/vue
restart: always
ports:
- 80:80
查看应用运行情况
docker-compose ps
运行应用
docker-compose up -d
关闭应用
docker-compose down
关于部署
部署文件制作流程
- 制作自定义镜像
- 测试使用镜像运行项目
- 编写docker-compose配置文件
- docker-compose运行应用
在全新系统上部署docker应用
- 安装docker
- 安装docker-compose
- 复制部署文件到系统中
- docker-compose运行应用