• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > Docker基础之compose文件结构以及安装工具

Docker基础之compose文件结构以及安装工具

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了Docker基础,compose文件结构,compose安装工具等相关知识,希望对您有所帮助

本篇文章给大家带来了docker中compose的相关知识,其中包括了compose文件结构以及安装docker compose工具的相关知识,希望对大家有帮助。


Docker基础之compose文件结构以及安装工具

什么是docker compose?

docker compose是一个容器编排功能,将运行在不同容器中的不同服务器进行编排,联合在一起。

可以用于对多数容器进行统一管理:包括但不限于:网络、端口、挂载等可以用于实现容器的集群化,相关于容器、镜像的一系列操作,compose都可以进行操作,就是一个对于容器进行管理的功能

一、compose文件结构

1、yml文件

compose中文件结构通常是指yml文件的结构,那什么是yml文件?

yml文件是一种键值对格式的文件。

yml文件对于格式非常的敏感,需要注意以下几种事项:

只识别空格进行的缩进,不识别tab键的缩进形式

通常开头部分缩进两个空格

字符后面缩进一格空格,包括但不限于:冒号、逗号、横杠等这些字符。字符后面必须缩进一格

支持使用#来进行注释

如果包含特殊字符,需要使用单引号引用起来

布尔值必须使用引号括起来

例如:

house:  family:    name: Doe    parents:       - John      - Jane    children:       - Paul      - Mark      - Simone  address:     number: 34    street: Main Street    city: Nowheretown    zipcode: 1234

yml文件格式例如上面,需要进行一级级的对应,不同级之间,有两个空格的间隔。

注:如果在一个层级中,一个键有多个值,可以使用在下一个层级,同样是空余两格,以短横杠起始,有几个值写几个端横杠


2、Compose配置常用的字段


字段描述build dockerfile centext指定Dockerfile文件名构建镜像上下文的路径images指定镜像command执行命令,覆盖默认命令container name指定容器名称,由于容器名称是唯一的。如果指定自定义名称,则是无法创建scaledeploy指定部署和运行服务相关配置,只能再Swarm模式使用environment添加环境变量networks加入网络ports暴露容器端口,与-p相同,但是端口号必须大于60volumts挂载宿主机路径或者命令卷restart重启策略,默认no,always, on-failure,unless-stopedhostname容器主机名


build:构造一个镜像时候的一个定义方式

dockerfile:方式是使用dockerfile的方式构建

context:服务docerfile文件的路径

images:可以指定使用的镜像名字,例如:images: 镜像名,注意:后面有个空格

command:执行一个语句

container name:用于指定容器的名称,因为容器名字是唯一的。如果指定自定义名称,则无法scale(设置副本集)

#副本集:将一个镜像制作成多个容器,这多个容器之间,运行环境等方面都是一模一样。当容器架构中的一个容器挂掉之后,可以直接启动一个相同的容器,用以保持副本集的数量,这是副本集的概念,同样也是K8s的核心。可以提高微服务的速度,提高容灾,高并发性能

deploy:是一个控制器,在k8s中是控制管理副本集的一个插件

restart:一种重启策略,默认是关闭之后不启动,如果always则是不管是手动关闭还是非手动关闭,都会自动把关闭状态的容器启动,unless-stoped只拉取关闭状态的容器,on-failure,只会启动容器返回码非零的容器


3、Compose在外部的常用命令


字段描述build重新构建一个镜像信息ps列出容器当前docker compose所控制的容器up创建以及启动容器exec在容器内执行命令scale指定一个服务器的启动数量,相当于副本集的数量top显示容器进程,所有docker compose控制的进程启动的容器logs查看容器的输出信息down删除容器、网络、数据卷和镜像stop/start/restart停止/启动/重启容器服务


docker compose基本使用格式:docker-compose [options] [COMMAND] [ARGS…]

docker-compose选项:

–verbose:输出更多调试信息

–version:打印版本并退出

-f /–file FILE:使用特定的compose模板文件,默认为docker-compose.yml

-p /–project-name NAME:指定项目名称,默认使用目录名称


二、安装docker compose工具

1、下载

curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

首次连接下载的时候,可能会提示失误或者连接不上,可能是因为网络原因,可以多试几次

2、添加权限

文件在刚下载之后,默认是没有执行权限的,所以需要手动添加执行权限

chmod +x /usr/local/bin/docker-compos

3、运行docker-compose

docker-compose

可以看到,现在已经正常执行了


三、编译镜像

手动创建下面的文件(dockerfile文件之前有的话,直接拉取过来也是可以的)

tree.├── docker-compose.yml├── nginx│   ├── Dockerfile│   ├── nginx-1.12.0.tar.gz└── wwwroot    └── index.html

其中yml文件内部

cat docker-compose.yml version: '3'services:  nginx:    hostname: nginx    build:      context: ./nginx      dockerfile: Dockerfile    ports:      - 1321:80      - 1707:443    networks:      - cluster    volumes:      - ./wwwroot: /usr/local/nginx/htmlnetworks:  cluster:

nginx的dockerfile文件

cat ./nginx/Dockerfile FROM centos:7ADD nginx-1.12.0.tar.gz /tmpRUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make &> /dev/null \    && useradd -M -s /sbin/nologin nginx \    && cd /tmp/nginx-1.12.0/ \    && ./configure \    --prefix=/usr/local/nginx \    --user=nginx \    --group=nginx \    --with-http_stub_status_module &> /dev/null \    && make &> /dev/null \    && make install &> /dev/nullVOLUME ["/usr/local/nginx/html"]EXPOSE 80CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

index.html文件中就是自己配置的网页信息,就不多做介绍了

确定之后,编译

docker-compose -f docker-compose.yml up -d

查看运行结果

docker ps -a CONTAINER ID   IMAGE                 COMMAND                  CREATED              STATUS                      PORTS                                                                        NAMESda38007f09ab   dockercompose_nginx   "/usr/local/nginx/sb…"   About a minute ago   Up About a minute           0.0.0.0:666->80/tcp, :::666->80/tcp, 0.0.0.0:667->443/tcp, :::667->443/tcp   dockercompose_nginx_1#可以看到,这个端口信息就是我们在yml文件中设置的端口信息,直接在这个生效了 docker images REPOSITORY                TAG       IMAGE ID       CREATED         SIZEdockercompose_nginx       latest    b1e4b9dfa72d   3 minutes ago   478MB

访问网址端口,查看该网站页面

curl 192.168.75.51:666hello#显示结果cat ./wwwroot/index.htmlhello


转自:https://blog.csdn.net/m0_60360828/article/details/122803195

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Docker基础之compose文件结构以及安装工具

相关文章

  • 2022-04-29PS打造线描风格舞者壁纸平面作品设计制作教程
  • 2022-04-29Js中json字符串怎样转json对象
  • 2022-04-29宝塔linux面板之​一键安装ffmpeg命令
  • 2022-04-29浅谈小程序中实现图片下载功能的方法
  • 2022-04-29Linux环境变量配置的6种方法,建议收藏!
  • 2022-04-29PHP重定向如何实现数据不丢失?
  • 2022-04-29SQLSTATE[HY000]: General error: mode must be an integer
  • 2022-04-29介绍centos7 bond的配置和调试
  • 2022-04-29PS简单制作蓝色梦幻的透明2012字效壁纸效果教程
  • 2022-04-29Javascript怎么禁止事件冒泡

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Photoshop制作超酷的3D岩石字体教程
    • 教你在laravel中如何使用elaticsearch(步骤分明)
    • 详解Bootstrap中的手风琴效果
    • thinkphp5视图文件提交form表单后台接收并打印
    • Photoshop制作非常简洁的灰色质感导航栏
    • PHP中的__callStatic函数如何使用
    • 总结分享Go中常用的strings函数
    • Photoshop制作立体有机玻璃文字效果
    • Angular CLI发布路径的配置项浅析
    • ThinkPHP框架SQL操作链式写法原理

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有