当前位置:   article > 正文

初学docker(从小白到入门,超详细~)持续更新中_525rh.top

525rh.top

该篇文章每天都在持续更新中,欢迎各位大神阅读并指点…

在这里插入图片描述

一、简介与概述

官网地址:https://docs.docker.com/https://www.docker.com/

1、为什么要使用docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。虚拟化容器技术 ,主要解决我们开发环境配置迁移的问题。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

2、使用docker的好处

  • 简化配置 安装创建非常的方便
  • 代码流水线(Code Pipeline)管理 传统项目部署可能需要经过很多环节,容易产生版本的依赖冲突问题,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少
  • Devops 开发与运维一体化减少沟通的成本 (docker或者是k8s实现)
  • 虚拟技术 快速部署
  • 弹性扩容

3、docker的应用场景

1.Web 应用的自动化打包和发布。
2.自动化测试和持续集成、发布。
3.在服务型环境中部署和调整数据库或其他的后台应用。
4.从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

4、容器与虚拟机区别

1、虚拟机是在硬件级别进行虚拟化,模拟硬件搭建操作系统;而Docker是在操作系统的层面虚拟化,复用操作系统,运行Docker容器
2、Docker的速度很快,秒级,而虚拟机的速度通常要按分钟计算
3、Docker所用的资源更少,性能更高。同样一个物理机器Docker运行的镜像数量远多于虚拟机的数量
4、虚拟机实现了操作系统之间的隔离,Docker是进程之间的隔离,虚拟机隔离级别更高、安全性方面也更强。
5、虚拟机和Docker各有优势,不存在谁替代掉谁的问题,很多企业都采用物理机上做虚拟机,虚拟机中跑Docker的方式。
容器与虚拟机区别的总结如表:

特性容器虚拟机
启动速度秒级分钟级别
硬盘使用一般为MB一般GB
性能接近原生弱于
系统支持量单机支持上千个容器一般几十个
隔离性完全隔离完全隔离

二、Docker安装

Docker 要求 CentOS7 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
1、通过 uname -r 命令查看你当前的内核版本
2、 使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum -y update
  • 1

3、 如果安装过旧版本的话,卸载旧版本

yum remove docker docker-common docker-selinux docker-engine
  • 1

4、 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2
  • 1

5、 设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 1

6、 可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort –r
  • 1

7、 安装docker

sudo yum install -y docker-ce     #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1
  • 1

8、 启动并加入开机启动

systemctl start docker
systemctl enable docker
  • 1
  • 2

9、 验证安装是否成功,如下图:(有client和service两部分表示docker安装启动都成功了)
在这里插入图片描述

三、Docker常用命令

  • docker --help 帮助命令
  • docker --version docker版本

docker images

  • docker images 查看本地镜像文件
    在这里插入图片描述
    属性说明:
  • REPOSITORY 存储库名称
  • Tag 镜像的标签 不写版本号码 默认下载最新latest镜像
  • IMAGE ID 镜像id
  • CREATED 创建时间
  • SIZE 大小
    参数说明
  • docker images -a 列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
  • docker images -q —只显示镜像的id
  • docker images --digests —显示镜像的摘要信息
  • docker images --no-trunc —显示完整镜像信息
  • docker rmi tomcat 删除镜像文件

docker search

在这里插入图片描述eg:docker search mysql 展示所有mysql的镜像文件
docker search -s 30 mysql 列出点赞数超过30以上。
latest 表示为最新的镜像文件 mysql8.0版本

docker pull

latest -----tag 最新版本的镜像文件
eg:docker pull nginx:latest
在这里插入图片描述

  • 默认的情况下 下载最新版本的镜像 可以通过https://hub.docker.com/_/nginxtab=tags&page=1&ordering=last_updated

查看容器信息

  • Docker ps 获取到容器(正在运行的)
  • Docker ps -a 获取到容器(所有)
  • docker inspect 容器id --查看容器详细信息
  • docker ps -l 查询最后一次创建的容器

容器的导入导出

  • 导出容器
    如果要导出本地某个容器,可以使用 docker export 命令。
    例如:导出容器 1e560fca3906 快照到本地文件 ubuntu.tar。
docker export 1e560fca3906 > ubuntu.tar
  • 1
  • 导入容器快照
    可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
  • 1

此外,也可以通过指定 URL 或者某个目录来导入,例如:

docker import http://example.com/exampleimage.tgz example/imagerepo
  • 1

运行容器

  • docker run -i (保持容器一直运行)
  • docker run -t(给容器一个伪终端)
  • docker run -d(后台运行,不直接进入容器)
  • docker run --name=tomcat9.2(给启动容器起名字)
  • docker run -p 8080:8080(宿主:docker容器)tomcat:9.2(启动的容器) 【参数】(加入容器初始化命令)
  • docker run -it 启动的容器有两个特点 一创建就进入容器 exit退出容器 容器就会停止运行 —交互式容器
  • docker run -id 创建的容器 docker exec -it tomcat9.2(–name起的名称)进入容器 exit退出容器 容器不会停止运行 —守护式容器
  • docker exec -it [CONTAINER ID] bash 进入容器,有的镜像没有bash命令,可以用对应的shell,比如sh
    docker exec -it [CONTAINER ID] sh
  • docker container prune 清理掉所有处于终止状态的容器
  • docker port 容器id : 查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号
  • docker logs -f 容器id : docker logs [ID或者名字] 可以查看容器内部的运行日志。
  • docker top 容器id : 查看容器内部运行的进程
  • docker --network:连接容器,例:
    运行一个容器并连接到新建的 test-net 网络:
docker run -itd --name test1 --network test-net ubuntu /bin/bash 
  • 1

打开新的终端,再运行一个容器并加入到 test-net 网络:

docker run -itd --name test2 --network test-net ubuntu /bin/bash
  • 1

在这里插入图片描述
进入在test1 容器,输入以下命令:

在这里插入图片描述
同理在 test2 容器也会成功连接到:
在这里插入图片描述
这样,test1 容器和 test2 容器建立了互联关系。

如果你有多个容器之间需要互相连接,推荐使用 Docker Compose,后面会介绍。

四、 docker run 运行原理

docker run mayikt
在这里插入图片描述

简单描述:首先会先从本地获取获取mayikt镜像文件,如果本地没有该镜像文件则会去
阿里云仓库查找该镜像文件,如果阿里云仓库也没有该镜像文件,则会报错找不到
镜像文件。
获取到镜像文件之后直接运行。
详细描述:
1.docker在本机缓存中 mayikt镜像文件,如果本地存在该镜像文件
,则以该镜像文件作为模板在容器中运行。
2.如果本地缓存中,没有mayikt镜像文件 则会从dockerhub 或者加速镜像中
查找,如果查找不到的话,则返回错误找不到该镜像。
3. 如果能够查找到该镜像,则以该镜像作为模板运行。
在这里插入图片描述
每个容器都有自己独立的网络 ip信息 运行成功 就是一个轻量级linux操作系统

五、 docker快速入门

1、Docker三大核心概念

镜像、容器、仓库是docker的三大核心概念。

  • 镜像文件(image)
    简单理解为就是一个安装包,里面包含容器所需要运行的的基础文件和配置信息,比如:redis镜像、mysql镜等。每个镜像文件都有自己独立ip信息(轻量级的linux服务器 虚拟化,比如:镜像就是类 容器就是实例对象)
    镜像的来源方式:
    (1)自己做镜像 比如(自己开发微服务项目)
    (2) 拉取别人制作好的镜像, 例如 nginx、mysql、redis等。
  • 容器(container)
    容器就是镜像运行的实例,容器状态分为:初创建、运行、停止、暂停、删除, 一个镜像可以创建多个不同的容器。
  • 仓库(repository)
    仓库就是存放一个个镜像的地方,下载镜像就是从仓库去下载。类似于maven中的中
    央仓库一样。
    Docker 公开仓库地址:https://hub.docker.com/
  • 宿主机
    当前操作系统

简单概述他们之间的关系如下图:
在这里插入图片描述

  1. 需要制作镜像文件(如:springboot项目,类似于开发者开发安装应用程序打包)
  2. 需要将我们制作好的镜像文件提交到docker仓库中(如:开发者将自己的app应用程序发布安卓手机助手中)
  3. 本地需要拉去我们docker仓库中下载镜像文件,在交给我们容器运行(如:用户从app市场中下载安装包运行)
  4. docker运行镜像文件(每个容器需要独立ip访问信息,端口号码映射)

2、 Docker下载镜像的原理

Docker pull 从远程docker 官方仓库下载 镜像,到本地,在使用容器运行该镜像。
注意的是:docker官方镜像仓库地址部署在国外,下载镜像可能比较慢,建议配置国内加速镜像
在这里插入图片描述

3、Docker加载镜像配置

(1) 国内加速器服务

https://hub.docker.com/search?q=redis&type=image —在国外访问可能比较慢
国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

(2)例如:配置阿里云加速镜像

阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了(如下图):
在这里插入图片描述
配置加速镜像的操作命令:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://puaeb5rh.mirror.aliyuncs.com(自己的加速器专属地址)"]
}
EOF
# 重新加载配置文件
sudo systemctl daemon-reload 
#重启docker
sudo systemctl restart docker
#查看是否配置成功
docker info
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

如下图,已显示我的加速专属地址,表示已配置成功

在这里插入图片描述

4、运行容器

例:运行一个tomcat的容器

1、拉取tomcat镜像
docker pull tomcat:8(可以指定版本号,不指定默认最新版本latest,我这里 下载的tomcat8)
  • 1

在这里插入图片描述

2、查看镜像
docker images 
  • 1

在这里插入图片描述
如图,我的tomca:8已下载成功,接下来运行tomcat

3、运行
  • docker run -d -p 8081:8080 --name=tomcat8 tomcat:8.0 (参数说明已在讲命令的时候讲解)
  • 通过docker ps查看容器是否已运行成功。
  • 通过curl命令进行访问严重是否tocat启动成功了。如下图(tomcat下没有项目,所以运行返回的是tomcat的主页信息。也可以通过浏览器访问)
    在这里插入图片描述
    浏览器访问展示的信息:
    在这里插入图片描述
    好啦,可以成功访问啦。

5、Docker Commit

docker commit主要作用:根据当前容器制作为镜像文件
例:下载一个tomcat:8版本的镜像文件,在tomcat的webapps目录下创建自己的一个mytomcat项目,默认访问地址index.html
操作操作步骤:

  • (1)从docker hub中下载一个tomcat8镜像文件;并且运行
    docker run -p 8081:8080 tomcat:8

  • (2)进入tomcat容器中,在webapps 目录中新增 mytomcat文件夹且创建index.html

docker exec -it 3a06b4c779a8   bash
cd webapps 
mkdir mytomcat 
cd mytomcat
touch index.html
echo "hello,这是我自个创建的镜像哟,嘻嘻" >>index.html
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
(3)根据当前容器作为模板制作为镜像文件
docker commit -m=“mytomcat” -a=“mytomcat” 3a06b4c779a8 mytomcat:1.0
(4)以当前自己制作的镜像文件运行
docker run -d --name=mytomcat -p 8081:8080 mytomcat:1.0
在这里插入图片描述
(5)验证是否能正常访问(如下图,已成功运行自己创建的镜像,且正常访问创建的文件)
在这里插入图片描述

六、 docker 数据卷

基本概念

数据卷就是宿主机上的一个文件或目录
当容器目录和数据卷(宿主机)目录绑定,双方修改会立即同步操作
一个数据卷可以被多个容器同时挂载
数据卷作用:容器数据的持久化 外部机器和容器间接通信 容器之间数据交换
使用 -v命令。

数据卷添加的方式

  1. 直接命令形式添加 docker run -it -v 宿主机绝对路径目录:容器内目录 镜像文件名称
  2. Dockerfile方式添加

例:安装nginx实现负载均衡

  • 创建挂载目录
    mkdir -p /data/nginx/{conf,conf.d,html,logs}
  • 启动docker容器
docker run --name nginx81 -d -p 81:80 -v /data/nginx/html:/usr/share/nginx/html nginx
  • 1

说明:-v /data/nginx/html 虚拟机目录 --挂载 容器目录,/usr/share/nginx/html 上传一个 html 放入到 /data/nginx/html。

  • 在 /data/nginx/html下创建index.html,在进入nginx容器中的/usr/share/nginx/html下检验是否能看到index.html
    在这里插入图片描述
    通过上图,可发现在/data/nginx/html目录下创建index.html文件在nginx容器中也可以访问,说明已正常挂载成功。

  • 挂载多个文件,如nginx .conf文件和日志文件

docker run --name nginx81 -d -p 81:80 -v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/logs:/var/log/nginx  nginx 
  • 1
  • 2
  • 3

说明:\反斜杠 表示换行

七、DockerFile

1、DockerFile编写规范

  • A.#描述注释
  • B.指令必须要大写,后面至少需要带至少一个参数;
  • C.指令是按照从上到下,顺序执行;

2、 DockerFile常用指令

指令说明
1. FROM指定父镜像: 基于哪个镜像image构建 指定基础镜像,必须为第一个命令
2. MAINTAINER维护者
3. RUN容器创建的时候执行一段命令 构建镜像时执行的命令
4. ADD将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
5. COPY功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
6. CMD构建容器后调用,也就是在容器启动时才进行调用。 .sh执行文件
7. ENV设置环境变量
8. EXPOSE指定于外界交互的端口
9. VOLUME用于指定持久化目录,数据卷挂载的目录
10. WORKDIR设置进入容器时的路径 默认访问的目录

下面的Tomcat的dockerFile,大家可以参照刚才讲到的指令,看下是否能够读懂:
https://github.com/docker-library/tomcat/blob/385e8403a38fab7097d4c3fed2484caba7dfd099/8.5/jdk8/openjdk-slim-buster/Dockerfile

3、例:构建自己centos镜像

实现效果:
  1. 进入容器中 默认访问目录/usr;
  2. 实现支持vim插件;
操作步骤
  1. 在根目录的usr下创建DockerFile文件
    在这里插入图片描述

  2. 编辑dockerFile文件

#继承docker hub中centos的镜像文件
FROM centos
#维护者信息
MAINTAINER mycentos-chenlili
#配置环境变量
ENV MYPATH /usr
#进入到容器默认访问的目录
WORKDIR $MYPATH
#安装vim插件
RUN yum -y install vim
#外部访问端口
EXPOSE 80
#启动容器后,自动进入容器中
CMD /bin/bash
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  1. 该Dockerfile实现打包成镜像文件
    打包前可以删除自己所有的镜像文件,以便清晰查看自己创建的centos文件)
    docker stop $(docker ps -q) & docker rm $(docker ps -aq) —停止/删除所有的容器
    docker rmi $(docker images -q)删除所有镜像文件
命令:docker build -f Dockerfile -t mycs:1 .
#参数说明
Dockerfile ------配置文件
mycs----打包镜像文件名称
1 tag 版本号码
  • 1
  • 2
  • 3
  • 4
  • 5

如下图可清晰看到在打包镜像文件过程中,我们制作的dockerFile文件内容从上到下的顺序在执行:
在这里插入图片描述

结果验证

如图,我的镜像文件以及所依赖的centos父镜像也都有了,且运行自己创建的镜像(mycs)成功后,自动进入了/usr目录,vim查看也有安装成功。说明本次创建自己的DockerFile文件实验成功啦
在这里插入图片描述

4、例:用DockerFile打包第一个SpringBoot项目

操作步骤

1、创建一个springboot项目
项目创建步骤省略,可参考https://blog.csdn.net/zyhlwzy/article/details/78730587
下图是我创建的测试类:
在这里插入图片描述
2、将springboot项目打包成jar包(打包方式有多种,相信正在做过java项目的同学都都会,这里就不介绍了)
在这里插入图片描述
打包成功后,我的项目下demo\target目录就能看到打包好的jar包了
在这里插入图片描述
3、定义dockerfile文件,描述springboot项目配置依赖和环境变量(注意:springboot内置嵌入我们的tomcat服务器 所以不需要额外的tomcat容器)

#继承docker hub中centos的镜像文件
FROM  java:8
#维护者信息
MAINTAINER mydemo-chenlili
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为demo.jar
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
# 运行jar包
RUN bash -c 'touch /demo.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/demo.jar"]
#暴露8080端口
EXPOSE 8080
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

4、将DockerFile文件和springboot项目jar包上传到服务器
(在根目录的usr下创建mydemo,然后上传文件)
在这里插入图片描述
5、讲DockerFile文件打包成镜像文件

命令:docker build -f Dockerfile -t mydemo:1 .
  • 1

如下图可清晰看到在打包镜像文件过程中,我们制作的dockerFile文件内容从上到下的顺序在执行:
在这里插入图片描述
7、启动容器,访问springboot验证部署是否成功

命令:docker run -d -p 8081:8080 --name=mydemo   mydemo:1
  • 1

如下图,可以正常访问我的springboot项目啦,表示用DockerFile打包第一个SpringBoot项目
在这里插入图片描述

八、 Docker Compose

Docker-compose简介

参考:https://www.cnblogs.com/minseo/p/11548177.html
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

Docker-Compose将所管理的容器分为三层:分别是工程(project),服务(service)以及容器(container)

Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。

Docker-compose中两个重要的概念

  • 服务 (service) :一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
  • 项目 (project) :由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

Docker-compose的安装

1、我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • 1

2、添加可执行的权限

sudo chmod +x /usr/local/bin/docker-compose
  • 1

3、验证是否安装成功

docker-compose -v
  • 1

如下图,已正常显示安装的版本,表示已安装成功啦
在这里插入图片描述

Docker-Compose常用命令

1、Docker-Compose命令格式

docker-compose [-f …] [options] [COMMAND] [ARGS…]
命令选项如下:

  • -f,–file FILE指定Compose模板文件,默认为docker-compose.yml,可以多次指定。
  • -p,–project-name NAME指定项目名称,默认将使用所在目录名称作为项目名。
  • -x-network-driver 使用Docker的可拔插网络后端特性(需要Docker 1.9+版本)
  • -x-network-driver DRIVER指定网络后端的驱动,默认为bridge(需要Docker 1.9+版本)
  • -verbose输出更多调试信息
    – v,–version打印版本并退出
2、docker-compose up

docker-compose up [options] [–scale SERVICE=NUM…] [SERVICE…]
选项包括:

  • -d 在后台运行服务容器
  • –no-color 不使用颜色来区分不同的服务的控制输出
  • –no-deps 不启动服务所链接的容器
  • –force-recreate 强制重新创建容器,不能与–no-recreate同时使用
  • –no-recreate 如果容器已经存在,则不重新创建,不能与–force-recreate同时使用
  • –no-build 不自动构建缺失的服务镜像
  • –build 在启动容器前构建服务镜像
  • –abort-on-container-exit 停止所有容器,如果任何一个容器被停止,不能与-d同时使用
  • -t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒)
  • –remove-orphans 删除服务中没有在compose文件中定义的容器
  • –scale SERVICE=NUM 设置服务运行容器的个数,将覆盖在- compose中通过scale指定的参数
  • docker-compose up
    启动所有服务
  • docker-compose up -d
    在后台所有启动服务
  • -f 指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定。
    例如:docker-compose -f docker-compose.yml up -d
3、docker-compose ps

docker-compose ps [options] [SERVICE…]

  • docker-compose ps 列出项目中目前的所有容器
4、docker-compose stop

docker-compose stop [options] [SERVICE…]
选项包括:

  • -t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒)
  • docker-compose stop停止正在运行的容器,可以通过docker-compose start 再次启动
5、docker-compose -h

docker-compose -h 查看帮助

6、docker-compose down

docker-compose down [options] 停止和删除容器、网络、卷、镜像。
选项包括:

  • –rmi type,删除镜像,类型必须是:all,删除compose文件中定义的所有镜像;local,删除镜像名为空的镜像
  • -v, –volumes,删除已经在compose文件中定义的和匿名的附在容器上的数据卷
  • –remove-orphans,删除服务中没有在compose中定义的容器
  • docker-compose down 停用移除所有容器以及网络相关
7、docker-compose logs

docker-compose logs [options] [SERVICE…]
查看服务容器的输出。默认情况下,docker-compose将对不同的服务输出使用不同的颜色来区分。可以通过–no-color来关闭颜色。

  • docker-compose logs 查看服务容器的输出
8、docker-compose build

docker-compose build [options] [–build-arg key=val…] [SERVICE…]
构建(重新构建)项目中的服务容器。
选项包括:

  • –compress 通过gzip压缩构建上下环境
  • –force-rm 删除构建过程中的临时容器
  • –no-cache 构建镜像过程中不使用缓存
  • –pull 始终尝试通过拉取操作来获取更新版本的镜像
  • -m, –memory MEM为构建的容器设置内存大小
  • –build-arg key=val为服务设置build-time变量,服务容器一旦构建后,将会带上一个标记名。可以随时在项目目录下运行docker-compose build来重新构建服务
9、docker-compose pull

docker-compose pull [options] [SERVICE…]
拉取服务依赖的镜像。
选项包括:

  • –ignore-pull-failures,忽略拉取镜像过程中的错误
  • –parallel,多个镜像同时拉取
  • –quiet,拉取镜像过程中不打印进度信息
  • docker-compose pull 拉取服务依赖的镜像
10、docker-compose restart

docker-compose restart [options] [SERVICE…]
重启项目中的服务。
选项包括:

  • -t, –timeout TIMEOUT,指定重启前停止容器的超时(默认为10秒)
  • docker-compose restart 重启项目中的服务
11、docker-compose rm

docker-compose rm [options] [SERVICE…]
删除所有(停止状态的)服务容器。
选项包括:

  • –f, –force,强制直接删除,包括非停止状态的容器
  • -v,删除容器所挂载的数据卷
  • docker-compose rm 删除所有(停止状态的)服务容器。推荐先执行docker-compose stop命令来停止容器。
12、docker-compose start

docker-compose start [SERVICE…]

  • docker-compose start 启动已经存在的服务容器。
13、docker-compose run

docker-compose run [options] [-v VOLUME…] [-p PORT…] [-e KEY=VAL…] SERVICE [COMMAND] [ARGS…]
在指定服务上执行一个命令。

  • docker-compose run ubuntu ping www.baidu.com
    在指定容器上执行一个ping命令。
14、docker-compose scale

docker-compose scale web=3 db=2 设置指定服务运行的容器个数。通过service=num的参数来设置数量

15、docker-compose pause

docker-compose pause [SERVICE…] 暂停一个服务容器

16、docker-compose kill

docker-compose kill [options] [SERVICE…]
通过发送SIGKILL信号来强制停止服务容器。
支持通过-s参数来指定发送的信号,例如通过如下指令发送SIGINT信号:
docker-compose kill -s SIGINT

17、dokcer-compose config

docker-compose config [options]
验证并查看compose文件配置。
选项包括:

  • –resolve-image-digests 将镜像标签标记为摘要
  • -q, –quiet 只验证配置,不输出。 当配置正确时,不输出任何内容,当文件配置错误,输出错误信息
  • –services 打印服务名,一行一个
  • –volumes 打印数据卷名,一行一个
18、docker-compose create

docker-compose create [options] [SERVICE…]
为服务创建容器。
选项包括:

  • –force-recreate:重新创建容器,即使配置和镜像没有改变,不兼容–no-recreate参数
  • –no-recreate:如果容器已经存在,不需要重新创建,不兼容–force-recreate参数
  • –no-build:不创建镜像,即使缺失
  • –build:创建容器前,生成镜像
19、docker-compose exec

docker-compose exec [options] SERVICE COMMAND [ARGS…]
选项包括:

  • -d 分离模式,后台运行命令。
  • –privileged 获取特权。
  • –user USER 指定运行的用户。
  • -T 禁用分配TTY,默认docker-compose exec分配TTY。
  • –index=index,当一个服务拥有多个容器时,可通过该参数登陆到该服务下的任何服务,例如:docker-compose exec –index=1 web /bin/bash ,web服务中包含多个容器
20、docker-compose port

docker-compose port [options] SERVICE PRIVATE_PORT
显示某个容器端口所映射的公共端口。
选项包括:

  • –protocol=proto,指定端口协议,TCP(默认值)或者UDP
  • –index=index,如果同意服务存在多个容器,指定命令对象容器的序号(默认为1)
21、docker-compose push

docker-compose push [options] [SERVICE…]
推送服务依的镜像。
选项包括:

  • –ignore-push-failures 忽略推送镜像过程中的错误
22、docker-compose stop

docker-compose stop [options] [SERVICE…] 显示各个容器运行的进程情况。

23、docker-compose unpause

docker-compose unpause [SERVICE…] 恢复处于暂停状态中的服务。

24、docker-compose version

docker-compose version 打印版本信息。

docker-compose 入门案例

案例:通过docker-compose部署一个springboot项目

操作流程
1. 创建一个docker-compose.yml;
2. 定制docker-compose 内容;
3. 运行 docker-compose up ;
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/964376
推荐阅读
相关标签
  

闽ICP备14008679号