当前位置: 首页 > news >正文

贵州省住房和城乡建设厅网站人事教育栏你的网站正在建设中

贵州省住房和城乡建设厅网站人事教育栏,你的网站正在建设中,市场营销策略有哪4种,城乡村建设规划许可证网站​ 基本介绍 使用一个Dockerfile模板文件#xff0c;可以很方便的定义一个适合自己使用的自定义镜像。但在工作中经常会碰到需要多个容器相互配合来完成某项任务或运行某个项目的情况。例如要运行一个django项目#xff0c;除了django容器本身#xff0c;往往还需要再加上…​ 基本介绍 使用一个Dockerfile模板文件可以很方便的定义一个适合自己使用的自定义镜像。但在工作中经常会碰到需要多个容器相互配合来完成某项任务或运行某个项目的情况。例如要运行一个django项目除了django容器本身往往还需要再加上后端的数据库服务容器甚至还包括负载均衡容器等此时我们就需要使用到Docker-Compose了。 Docker-Compose项目是Docker官方的开源项目负责实现对Docker容器集群的快速编排。Docker-Compose项目由Python编写调用Docker服务提供的API来对容器进行管理和编排。因此只要所操作的平台支持Docker API就可以在其上利用Docker-Compose来进行Docker容器的编排和管理。 Docker-Compose将所管理的Docker容器分为三层分别是工程project服务service以及容器container。 Docker-Compose允许我们开发者通过一个单独的docker-compose.yml配置文件YAML 格式来定义一组相关联的docker容器为一个工程project。一个工程至少有一个服务一个服务下至少有一个容器。 Docker-Compose运行指定目录下的所有关联文件组成一个工程工程名默认为当前目录名。一个工程当中可包含多个服务每个服务中可以定义Docker容器运行的镜像参数环境依赖等信息。 Docker-Compose的工程配置文件默认为docker-compose.yml也可以通过-f 参数来指定成其他的配置文件名。 安装 安装docker-compose这种安装方式是基于Linux操作系统的源来决定安装版本的所以往往版本会比较低。 apt install -y docker-compose 下载最新版本 安装地址Overview of installing Docker Compose | Docker Docs 发布地址Releases · docker/compose · GitHub 查看安装的版本 docker-compose version 卸载 sudo rm /usr/local/bin/docker-compose sudo rm /usr/bin/docker-compose 常用命令 基本命令格式 docker-compose [-f arg...] [options] [COMMAND] [ARGS...]命令选项如下 -f --file FILE指定Compose模板文件默认为当前目录下docker-compose.yml # -p --project-name NAME 指定项目名称默认使用当前所在目录为项目名 # --verbose 输出更多调试信息 # -v-version 打印版本并退出 # --log-level LEVEL 定义日志等级(DEBUG, INFO, WARNING, ERROR, CRITICAL)docker-compose up 根据容器编排配置文件docker-compose.yml进行编排和启动容器。相当于docker run的增强版。 docker-compose up [options] [--scale SERVICENUM...] [SERVICE...] 选项包括-f 指定compose模板文件名-d 在系统守护进程的方式批量运行服务容器# 常用写法 # docker-compose up # 以占据终端的方式批量启动docker-compose.yml中配置的所有容器 # docker-compose up -d # 以系统守护进程的方式批量启动docker-compose.yml中配置的所有容器不会占据终端 # docker-compose -f docker-compose.yaml up -ddocker-compose down 停止运行并删除docker-compose.yml配置的容器、网络、卷。相当于 docker stop 与 docker rm的组合 docker-compose down [options] 选项包括-f 指定compose模板文件名# 常用写法 # docker-compose down # docker-compose -f docker-compose.yml downdocker-compose logs 列出当前工程项目中运行容器过程中的运行日志。相当于docker logs docker-compose logs [options] [SERVICE...] 选项包括-f 跟踪日志输出# 常用写法 docker-compose logs # 查看整个docker-compose.yml配置中所有的容器的运行日志不占据终端 docker-compose logs -f # 监控整个docker-compose.yml配置中所有的容器的运行日志占据终端模板配置入门 Compose模板文件是一个定义服务、网络和逻辑卷的YAML文件。Compose模板文件默认路径是当前目录下的docker-compose.yml可以使用.yml或.yaml作为文件扩展名。 Docker-Compose标准模板文件应该包含version、services、networks 三大部分最关键的是services和networks两个部分。networks是可选参数。 ​例如我们要一次性启动3个ubuntu容器运行各自不同的配置下。 docker-compose.yml注释版本代码 # 目前我们使用的基本都是Version3版本最新版本是3.9。 version: 3.8# 声明接下来开始配置服务容器 services:# 服务名开发者自定义的ubuntu1:# image 当前服务容器的基本依赖镜像如果本地没有该镜像则会自动从官网pull拉取# image 也可以是自己本地基于Dockerfile编译后产生的定制镜像但是必须是已经build编译好的# 如希望在docker-compose up启动容器服务时自动编译Dockerfile则必须增加配置项build指定Dockerfile# 文件的所在路径如果不指定则可能出现从官网拉取镜像失败的情况build配置项写法如下:# build: .# 如使用了build配置项时还声明了image配置项则基于build所在的Dockerfile编译的镜像名为image指定名字。# build: .# image: djdemo:1.0.0image: ubuntu:20.04# container_name 指定当前服务容器启动以后的容器名container_name: ubuntu1# networks 指定网络可以分配容器在一个或多个网络如果不指定则默认分配在docker的default网络中networks:- devubuntu2:image: ubuntu:20.04container_name: ubuntu2networks:- dev- proubuntu3:image: ubuntu:20.04container_name: ubuntu3networks:- pro# 网络配置 networks:# 指定网络名称相当于网卡名dev:# driver 网卡驱动bridge 桥接模式网卡驱动有三种模式bridge、host、none# 查看网络docker network lsdriver: bridgepro:driver: bridge完成上面的配置以后可以通过以下命令批量创建ubuntu容器。 # 批量启动容器 docker-compose up # 查看当前目录下的docker-compose.yml配置的容器 docker-compose ps # 删除docker-compose.yml配置的容器 docker-compose downdocker-compose up -d docker-compose ps docker-compose down配置项说明 image image是指定服务的镜像名称或镜像ID。如果镜像在本地不存在Compose将会尝试拉取镜像。 注意如果镜像有版本号则镜像名和版本号之间不能出现空格否则报错 services:ubuntu1:image: ubuntu:20.04build 服务除了可以基于指定的基础镜像还可以基于一份Dockerfile的自定义镜像在使用docker-compose up启动时执行docker容器的构建任务构建标签是build可以指定Dockerfile所在文件夹的路径。Compose将会利用Docker自动构建镜像然后使用镜像启动服务容器。 services:web:build: /home/docker # 指定Dockerfile文件的路径如果与docker-compose.yml在同一个目录则可以使用 . 表示当前目录也可以是相对路径只要上下文确定就可以读取到Dockerfile。 services:web:build: ../docker设定上下文根目录然后以该目录为准指定Dockerfile。 services:web:build:context: ../dockerdockerfile: Dockerfilebuild都是一个目录如果要指定Dockerfile文件需要在build标签的子级标签中使用dockerfile标签指定。 如果同时指定image和build两个标签那么Compose会构建镜像并且把镜像命名为image值指定的名字。 services:web:image: djdemo:1.0.0build:context: /home/dockerdockerfile: Dockerfilecontext选项可以是Dockerfile的文件路径也可以是到链接到git仓库的url当提供的值是相对路径时被解析为相对于撰写文件的路径此目录也是发送到Docker守护进程的context dockerfile选项可以指定context对应目录下的Dockerfile文件来构建必须指定构建路径command 使用command可以覆盖容器启动后默认执行的命令。相当于 docker命令的末尾参数。 compose的command会覆盖Dockerfile里面的CMD的值。 command: shell命令container_name Compose的容器名称格式是项目名称服务名称序号相当于 docker [选项] --name 可以自定义项目名称、服务名称但如果想完全控制容器的命名可以使用标签指定 container_name: apprestart 指定容器是否在操作系统重启以后docker启动以后是否容器也自动重启。相当于 docker --restartalways restart: alwaysenvironment 指定服务容器中的环境变量可以多个环境变量每个环境变量就一个成员相当于 docker -e version: 3.7 services:mysql:image: mysql:8.0.26restart: alwayscontainer_name: mysqlnetworks:- mysqlenvironment:- MYSQL_ROOT_PASSWORDroot- MYSQL_USERluffycity- MYSQL_PASSWORDluffycity- MYSQL_DATABASEluffycity- TZAsia/Shanghaidepends_on 在使用Compose时最大的好处就是少打启动命令但一般项目中多个容器的启动顺序是有要求的如果直接从上到下启动容器必然会因为容器依赖问题而启动失败。例如在没启动数据库容器的时候启动应用容器应用容器会因为找不到数据库而退出。depends_on标签用于解决容器的依赖、启动先后顺序的问题 version: 3.7 services:django:build: .depends_on:- mysql- redisredis:image: redis:6.0mysql:image: mysql:8.0.26上述YAML文件定义的容器会先启动redis和db两个服务最后才启动django服务。 ports ports用于映射端口的标签。 使用HOST:CONTAINER格式或者只是指定容器的端口宿主机会随机映射端口。相当于docker -p ports:- 3000 # 等价于 3000:3000- 8000:8000- 49100:22当使用HOST:CONTAINER格式来映射端口时如果使用的容器端口小于60可能会得到错误得结果因为YAML将会解析xx:yy这种数字格式为60进制。所以建议采用字符串格式。 volumes 挂载一个目录或者一个已存在的数据卷容器可以直接使用 [HOST:CONTAINER]格式或者使用[HOST:CONTAINER:ro]格式后者对于容器来说数据卷是只读的可以有效保护宿主机的文件系统。 Compose的数据卷指定路径可以是相对路径使用 . 或者 … 来指定相对目录。 相当于 docker run 终端命令选项-v参数 数据卷的格式可以是下面多种形式 volumes:# 只是指定一个路径Docker 会自动在创建一个数据卷这个路径是容器内部的。# 相当于 /var/lib/mysql:/var/lib/mysql- /var/lib/mysql# 使用绝对路径挂载数据卷- /opt/data:/var/lib/mysql# 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器。- ./cache:/tmp/cache# 使用用户的相对路径~/ 表示的目录是 /home/用户目录/ 或者 /root/。- ~/configs:/etc/configs/:ro# 已经存在的命名的数据卷。- datavolume:/var/lib/mysql如果不使用宿主机的路径可以指定一个volume_driver。 volume_driver: mydriver volumes_from 从另一个服务或容器挂载其数据卷 volumes_from:- service_name - container_namedns 自定义DNS服务器。可以是一个值也可以是一个列表。 dns8.8.8.8 dns- 8.8.8.8 - 9.9.9.9expose 暴露端口但不映射到宿主机只允许能被连接的服务访问。仅可以指定内部端口为参数如下所示 expose:- 3000- 8000links 链接到其它服务中的容器。使用服务名称同时作为别名或者“服务名称:服务别名”如 SERVICE:ALIAS例如 links:- db- db:database- redisnet 设置网络模式。 net: bridge net: none net: host
http://www.w-s-a.com/news/199615/

相关文章:

  • 生物科技企业网站做的比较好的企业培训网站模板
  • 南京 高端网站建设网站备案密码怎么找回
  • 蛋糕店网站模板建设电子商务系统网站
  • 海口网站建设优化公司网站开发要加班吗
  • 建设一个网站需要注意哪些要求群晖的网站开发
  • 精通网站开发阅读网页视频下载慢怎么办
  • 网站标题的选择巴音郭楞库尔勒网站建设
  • 成都市网站建设服务商怎么进网站后台管理系统
  • 企业网站站内优化30岁做网站编辑
  • 与安网站建设网站建设征求意见稿
  • 学校网站推广做网站手把手
  • 网站开发遇到的难题wordpress文章调用
  • 网站建设做的好在线logo免费设计生成器标智客
  • 郑州做网站齿轮网站排名怎么做 site
  • 船员专用网站开发建议wordpress 图片占用id
  • 桌面软件开发跟网站开发那个上海网站备案在哪里查询
  • 罗湖网站建设陕西省建设网官网住房和城乡厅官网
  • 做一个网站的详细教学wordpress 忘记用户名密码
  • 建设银行的网站是多少wordpress添加新页面跳转
  • 网站设计费用抓取网站访客qq号码
  • 驾校视频网站模板郑州网站建设价格
  • 上海 有哪些做网站的公司成都企业网站备案流程
  • 移动端快速建站的方法青海公司网站建设
  • 网站重新搭建程序要多少钱移动互联网应用的使用情况
  • 学建站论坛给别人做网站怎么赚钱吗
  • 响应式网站代码校友会网站建设的目的
  • 北京公司网站网站建设html模板
  • 专门做医疗器械的网站免费网页制作系统团队
  • 网站开发技术 html临夏网站建设
  • flash网站模板免费下载拍卖网站开发多少钱