Docker笔记(进阶篇)— Docker Compose

csudo curl -L “https://github.com/docker/compose/releases/download/1.29.2/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose

#安装太慢的 把github源换成get.daocloud.io

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

去到安装目录检查:下载成功!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zTS1WWS9-1638112702264)(Docker笔记(进阶篇).assets/image-20211128194651151.png)]

2、设置文件可执行权限

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

3、查看版本信息

docker-compose -version

、

4、卸载Docker-Compose

sudo rm /usr/local/bin/docker-compose

3、快速体验Docker Compose

参考文档:https://docs.docker.com/compose/gettingstarted/

1、创建目录,所有操作都在这个目录下进行

mkdir composetest

cd composetest

2、创建一个py应用,(类似统计浏览次数,计数器)

import time

import redis #导入了我们的redis

from flask import Flask #导入了我们的Flask(python的一个框架依赖)

app = Flask(name)

cache = redis.Redis(host=‘redis’, port=6379)

def get_hit_count():

retries = 5

while True:

try:

return cache.incr(‘hits’)

except redis.exceptions.ConnectionError as exc:

if retries == 0:

raise exc

retries -= 1

time.sleep(0.5)

@app.route(‘/’)

def hello():

count = get_hit_count()

return ‘Hello World! I have been seen {} times.\n’.format(count)

3、创建一个配置文本requirements.txt

flask

redis

4、创建Dockerfile

syntax=docker/dockerfile:1

FROM python:3.7-alpine

WORKDIR /code

ENV FLASK_APP=app.py

ENV FLASK_RUN_HOST=0.0.0.0

RUN apk add --no-cache gcc musl-dev linux-headers

COPY requirements.txt requirements.txt

RUN pip install -r requirements.txt

EXPOSE 5000

COPY . .

CMD [“flask”, “run”]

5、创建docker-compose.yml

version: “3.9”

services:

web:

build: .

ports:

  • “5000:5000”

redis:

image: “redis:alpine”

6、启动

docker-compose up

启动成功!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lCabLCrP-1638112702266)(Docker笔记(进阶篇).assets/image-20211128204558475.png)]

测试结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5RXnydnZ-1638112702267)(Docker笔记(进阶篇).assets/image-20211128204627917.png)]

hh,一键启动两个应用确实舒服!

4、Docker Compose默认配置

1、自动下载配置文件docker-compose.yml中的镜像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J2z589Lp-1638112702269)(Docker笔记(进阶篇).assets/image-20211128204905248.png)]

2、自动生成服务名字 文件名_服务名 _num

Starting composetest_web_1 … done #web服务

Starting composetest_redis_1 … done #redis服务

3、网络规则

、

默认会生成一个网络,10个服务=>网络(项目中的内容都在同一个网络下,容器名访问)

在同一个网络下可以直接通过容器名(域名)访问

4、停止

  • docker-compose down :需要在compose的yaml配置文件目录执行,不然是找不到的!

  • ctrl + c

小节

1、Docker镜像,run ==> 容器

2、Dockerfile构建镜像(服务打包)

3、docker-compose启动项目(编排,多个微服务/环境)

4、Docker网络!

5、项目需要更新,docker compose up --build 即可

5、Compose编写配置规则

参考文档 : https://docs.docker.com/compose/compose-file/compose-file-v3/

核心:编写 docker-compose.yaml

#3层

version: ‘’ #版本

services: #服务

服务1: web

#服务配置 docker容器的配置

images:

build:

network:

depends_on: #depents_on: web服务依赖redis和mysql,让他们先启动!(这就是编排的原因)

-redis

-mysql

服务2: redis

服务2: mysql

#其他配置 网络/卷、全局规则

volumes:

network:

configs:

1、版本选择

、

2、服务相关配置

6、Compose一键部署WP博客

参考文档 :https://docs.docker.com/samples/wordpress/

1、创建目录并进入目录

mkdir my_wordpress/

cd my_wordpress/

2、编写docker-compose.yml

version: “3.9”

services:

db:

image: mysql:5.7

volumes:

  • db_data:/var/lib/mysql

restart: always

environment:

MYSQL_ROOT_PASSWORD: somewordpress

MYSQL_DATABASE: wordpress

MYSQL_USER: wordpress

MYSQL_PASSWORD: wordpress

wordpress:

depends_on:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Java)

最后

终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化

image

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
103-1713825640095)]

[外链图片转存中…(img-ESqJS1K3-1713825640096)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Java)

[外链图片转存中…(img-4GLa462g-1713825640096)]

最后

终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化

[外链图片转存中…(img-Pq8yu9Ts-1713825640096)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值