当前位置:   article > 正文

记录docker-compose遇到的坑_dockercompose keyerror: 'containerconfig

dockercompose keyerror: 'containerconfig

目录

前言:

一、安装和下载

在线安装:

1、github上下载

2、daocloud下载

3、添加可执行权限

离线安装:

①在 GitHub下载对应的版本

②将下载的文件移动到bin目录

③添加可执行权限

疑难杂症:

①github连接不上 

②安装授权后,出现没有此命令

二、核心概念

1、compose使用三步骤

2、docker-compose命令详解

①docker-compose命令格式

②docker-compose up

③docker-compose ps

④docker-compose stop

⑤docker-compose -h

⑥docker-compose down

⑦docker-compose logs

⑧docker-compose config

⑨docker-compose exec

⑩docker-compose port

前言:

Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器;再比如在分布式应用一般包含若干个服务,每个服务一般都会部署多个实例。如果每个服务都要手动启停,那么效率之低、维护量之大可想而知。这时候就需要一个工具能够管理一组相关联的的应用容器,这就是Docker Compose。

一、安装和下载

在线安装:

1、github上下载

curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

2、daocloud下载(有点问题)

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

3、添加可执行权限

  1. [root@100-215 upload]# sudo chmod +x /usr/local/bin/docker-compose
  2. [root@100-215 upload]# cd /usr/local/bin #切换到docker-compose文件对应目录
  3. [root@100-215 bin]# docker -compose version #检验是否安装成功
  4. Docker Compose version v2.16.0

离线安装:

①在 GitHub下载对应的版本

下载链接:github.com

 使用xftp传输到/usr/local/upload文件夹下,这里选择的是1.26.0 的 docker-compose-Linux-x86_64

②将下载的文件移动到bin目录

  1. [root@100-215 upload]# pwd #展示当前目录
  2. /usr/local/upload
  3. [root@100-215 upload]# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose #剪切至usr/local/bin下,并重命名为docker-compose

③添加可执行权限

  1. [root@100-215 upload]# sudo chmod +x /usr/local/bin/docker-compose
  2. [root@100-215 upload]# cd /usr/local/bin #切换到docker-compose文件对应目录
  3. [root@100-215 bin]# docker -compose version #检验是否安装成功
  4. Docker Compose version v2.16.0

疑难杂症:

①github连接不上 

        因为GitHub为国外网址,所以连接不上也是很正常的,建议在线安装使用国内的daocloud进行下载(现在daocloud好像也有点问题了,下载后授权出现路由错误)。

②安装授权后,出现没有此命令

如果出现-bash: docker-compose: 未找到命令

1、查看服务器环境变量

  1. [root@100-215 bin]# echo $PATH #发现没有/usr/local/bin的环境变量
  2. /usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/root/bin

2、进行一个软连接:

ln -s /usr/local/bin/docker-compose /bin/docker-compose

3、验证是否解决

  1. [root@100-215 bin]# docker-compose version
  2. Docker Compose version v2.16.0

这样docker-compose就安装完成了。

二、核心概念

一文件:docker-compose.yml

两要素:

        服务service:一个个应用容器示例

        工程project:由一组关联的应用容器组成的一个完整的业务单元,在docker-compose.yml文件中定义。

1、compose使用三步骤

1、编写dockerfile定义各微服务应用并构建出对应的镜像文件

2、使用docker-compose.yml定义一个完整的业务单元,安排好整体应用中的各个容器服务

3、最后,执行docker-compose up命令,来启动并运行整个应用程序,完成一键部署上线

Docker compose的常用命令:

  1. docker-compose -h # 查看帮助
  2. docker-compose up # 启动所有docker-compose服务
  3. docker-compose up -d # 启动所有docker-compose服务并后台运行
  4. docker-compose down # 停止并删除容器、网络、卷、镜像。
  5. docker-compose exec yml里面的服务id # 进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
  6. docker-compose ps # 展示当前docker-compose编排过的运行的所有容器
  7. docker-compose top # 展示当前docker-compose编排过的容器进程
  8. docker-compose logs yml里面的服务id # 查看容器输出日志
  9. docker-compose config # 检查配置
  10. docker-compose config -q # 检查配置,有问题才有输出
  11. docker-compose restart # 重启服务
  12. docker-compose start # 启动服务
  13. docker-compose stop # 停止服务

2、docker-compose命令详解

①docker-compose命令格式

docker-compose [-f <arg>...] [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打印版本并退出

②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指定的参数

  1. docker-compose up 启动所有服务
  2. docker-compose up -d 在后台所有启动服务
  3. docker-compose -f docker-compose.yml up -d -f 指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定。

③docker-compose ps

  1. [root@100-215 webapp-compose]# docker-compose ps
  2. NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
  3. web1 nginx "/docker-entrypoint.…" web1 4 minutes ago Up 4 minutes 0.0.0.0:6061->80/tcp
  4. web2 nginx "/docker-entrypoint.…" web2 4 minutes ago Up 4 minutes 0.0.0.0:6062->80/tcp
  5. web3 nginx "/docker-entrypoint.…" web3 4 minutes ago Up 4 minutes 0.0.0.0:6063->80/tcp

④docker-compose stop

docker-compose stop 停止现在正在运行的容器

docker-compose stop -t -t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒)

⑤docker-compose -h

docker-compose -h 查看帮助

⑥docker-compose down

docker-compose down 停用移除所有容器及网络相关

–rmi type 删除镜像,类型必须是:all,删除compose文件中定义的所有镜像;local,删除镜像名为空的镜像

-v, –volumes 删除已经在compose文件中定义的和匿名的附在容器上的数据卷

–remove-orphans 删除服务中没有在compose中定义的容器

⑦docker-compose logs

docker-compose logs 查看服务容器的输出,-no-color来关闭颜色

⑧docker-compose config

docker-compose config 验证并查看compose文件配置。

docker-compose config -q 配置文件有问题才输出

docker-compose config --services 打印服务名,一行一个
docker-compose config --volumes 打印数据卷名,一行一个

⑨docker-compose exec

docker-compose exec 与服务进行交互

docker-compose exec [options] SERVICES COMMAND [ARGS....]

-d 分离模式,后台运行命令。

–privileged 获取特权。

–user USER 指定运行的用户。

-T 禁用分配TTY,默认docker-compose exec分配TTY。

–index=index,当一个服务拥有多个容器时,可通过该参数登陆到该服务下的任何服务,例如:docker-compose exec –index=1 web /bin/bash ,web服务中包含多个容器

⑩docker-compose port

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

选项包括:

–protocol=proto,指定端口协议,TCP(默认值)或者UDP

–index=index,如果同意服务存在多个容器,指定命令对象容器的序号(默认为1)

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号