容器云系列之Docker管理工具Docker-compose

云计算-容器云-基于docker-compose+Django编排部署博客系统 (1)容器1名称:blog-memcached;镜像:blog-memcached:v1.0;镜像:blog-service:v1.0;(2)容器2名称:blog-mysql;镜像:blog-mysql:v1.0;(3)容器3名称:blog-nginx;镜像:blog-nginx:v1.0;完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。 阅读详情

Docker-compose和Docker machine是Docker容器管理的工具,本文简单介绍了Docker-compose的使用,并结合案例Haproxy实现负载均衡加深对Docker管理的理解。


1、Docker-compose编排工具

Docker-compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,可以使用YML文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从YML文件配置中创建并启动所有服务。

Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡。

1.1 安装docker-compose

1)安装docker-compose

[root@tango-01 /]# curl -L https://github.com/docker/compose/releases/download/1.27.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   651  100   651    0     0    230      0  0:00:02  0:00:02 --:--:--   230
100 11.6M  100 11.6M    0     0  61742      0  0:03:17  0:03:17 --:--:-- 73847
[root@tango-01 /]# chmod +x /usr/local/bin/docker-compose
[root@tango-01 /]# 

2)查看安装版本

[root@tango-01 /]# docker-compose --version
docker-compose version 1.27.0, build 980ec85b
1.2 Docker-compose常用命令
#1. Docker-compose命令格式
docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]

#2. docker-compose up运行容器
docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]

#3. docker-compose ps:列出项目中所有的容器
docker-compose  ps [options] [SERVICE...]

#4. docker-compose stop:停止正在运行的容器
docker-compose stop [options] [SERVICE...]

#5. docker-compose down:停用移除所有容器以及网络相关
docker-compose down [options]

#6. docker-compose logs:查看服务容器的输出
docker-compose logs [options] [SERVICE...]

#7. docker-compose bulid:构建(重新构建)项目中的服务容器
docker-compose build [options] [--build-arg key=val...] [SERVICE...]

#8. docker-compose pull:拉取服务依赖的镜像
docker-compose pull [options] [SERVICE...]

#9. docker-compose restart:重启项目中的服务
docker-compose restart [options] [SERVICE...]

#10. docker-compose rm:删除所有(停止状态的)服务容器
docker-compose rm [options] [SERVICE...]

#11. docker-compose start:启动已经存在的服务容器
docker-compose start [SERVICE...]

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

#13. docker-compose scale:设置指定服务运行的容器个数
docker-compose scale web=3 db=2

#14. docker-compose pause:暂停一个服务容器
docker-compose pause [SERVICE...]

#15. docker-compose kill:通过发送SIGKILL信号来强制停止服务容器
docker-compose kill [options] [SERVICE...]

#16. docker-compose config:验证并查看compose文件配置
docker-compose config [options]

#17. docker-compose create:为服务创建容器
docker-compose create [options] [SERVICE...]

#18. docker-compose exec:
docker-compose exec [options] SERVICE COMMAND [ARGS...]

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

#20. docker-compose push:推送服务依的镜像
docker-compose push [options] [SERVICE...]

#21. docker-compose stop:停止运行的容器
docker-compose stop [options] [SERVICE...]

#22. docker-compose uppause:恢复处于暂停状态中的服务
docker-compose unpause [SERVICE...]
1.3 使用Docker-compose编排容器
1.3.1 Docker-compose模板文件

Compose允许用户通过一个docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器为一个项目(project),YAML文件中会定义服务、网络和卷等配置信息。Docker-Compose标准模板文件应该包含version、services、networks 三大部分,docker-compose.yml模板如下:

version: "3.8"
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
      - logvolume01:/var/log
networks:
  front-tier:
    driver: bridge
  back-tier:
    driver: bridge

YAML中的关键标签如下:
在这里插入图片描述

1.3.2 Docker-compose示例

接下去以Django/PostgreSQL为例介绍Docker-compose的使用

1)创建文件目录

[root@tango-01 docker]# mkdir /usr/local/docker/app/my_django

2)在目录中创建新的Dockerfile

[root@tango-01 my_django]# vi Dockerfile 
FROM python:3
ENV PYTHONUNBUFFERED=1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

3)创建requirements.txt

[root@tango-01 my_django]# vi requirements.txt 
Django>=3.0,<4.0
psycopg2-binary>=2.8

4)创建docker-compose.yml

[root@tango-01 my_django]# vi docker-compose.yml 
version: "3.8"

services:
  db:
    image: postgres
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
  django:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

5)创建Django Project

[root@tango-01 my_django]# docker-compose run web django-admin startproject composeexample .

6)命令结束后查看目录文件

[root@tango-01 my_django]# ls -l
total 16
drwxr-xr-x 2 root root  89 Oct 24 08:08 composeexample
-rw-r--r-- 1 root root 327 Oct 24 07:49 docker-compose.yml
-rw-r--r-- 1 root root 146 Oct 24 07:48 Dockerfile
-rwxr-xr-x 1 root root 670 Oct 24 08:08 manage.py
-rw-r--r-- 1 root root  38 Oct 24 07:48 requirements.txt

7)修改Django配置,连接到Database

[root@tango-01 composeexample]# vi settings.py
ALLOWED_HOSTS = ['*']

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

注意修改ALLOWED_HOSTS = [’*’],否则提示
在这里插入图片描述
8)启动容器

[root@tango-01 my_django]# docker-compose up
Starting my_django_db_1 ... done
Starting my_django_web_1 ... done
Attaching to my_django_db_1, my_django_web_1
db_1   | 
db_1   | PostgreSQL Database directory appears to contain a database; Skipping initialization
db_1   | 
db_1   | 2020-10-24 00:17:29.464 UTC [1] LOG:  starting PostgreSQL 13.0 (Debian 13.0-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
db_1   | 2020-10-24 00:17:29.464 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db_1   | 2020-10-24 00:17:29.464 UTC [1] LOG:  listening on IPv6 address "::", port 5432
db_1   | 2020-10-24 00:17:29.476 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1   | 2020-10-24 00:17:29.481 UTC [23] LOG:  database system was shut down at 2020-10-24 00:15:49 UTC
db_1   | 2020-10-24 00:17:29.487 UTC [1] LOG:  database system is ready to accept connections
web_1  | Watching for file changes with StatReloader
web_1  | Performing system checks...
web_1  | 
web_1  | System check identified no issues (0 silenced).
web_1  | 
web_1  | You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
web_1  | Run 'python manage.py migrate' to apply them.
web_1  | October 24, 2020 - 00:17:31
web_1  | Django version 3.1.2, using settings 'composeexample.settings'
web_1  | Starting development server at http://0.0.0.0:8000/
web_1  | Quit the server with CONTROL-C.

9)连接到应用
在这里插入图片描述

1.3.3 haproxy实现负载均衡

1)修改编排脚本

[root@tango-01 my_django]# vi docker-compose.yml 
version: "3.8"

services:
  db:
    image: postgres
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
  web1:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000"
    depends_on:
      - db
  web2:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000"
    depends_on:
      - db
  haproxy:
         image: haproxy:latest
         volumes:
                 - ./haproxy:/usr/local/etc/haproxy
         links:
                 - web1
                 - web2
         ports:
                 - "8000:8000"
                 - "8088:8088"
         expose:
                 - 8000
                 - 8088

2)修改haproxy配置文件

[root@tango-01 my_django]# vi haproxy/haproxy.cfg 
global
    log         127.0.0.1 local2
    maxconn     4000
    daemon

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

listen stats
    mode http
    log global
    bind 0.0.0.0:8088
    stats enable
    stats refresh 30s
    stats uri     /haproxy-stats 
    stats auth    admin:123456

frontend balancer
    mode http
    bind 0.0.0.0:8000
    option httplog
    log global
    default_backend      backend_web

backend backend_web
    balance     roundrobin
    server server1 web1:8000 check inter 2000 rise 30 fall 15
    server server2 web2:8000 check inter 2000 rise 30 fall 15

列出文件

[root@tango-01 my_django]# ls -lR
.:
total 20
drwxr-xr-x 3 root root 136 Oct 24 08:59 composeexample
-rw-r--r-- 1 root root 322 Oct 25 15:31 docker-compose-bk201025.yml
-rw-r--r-- 1 root root 760 Oct 25 15:33 docker-compose.yml
-rw-r--r-- 1 root root 146 Oct 24 07:48 Dockerfile
drwxr-xr-x 2 root root  25 Oct 25 15:36 haproxy
-rwxr-xr-x 1 root root 670 Oct 24 08:08 manage.py
-rw-r--r-- 1 root root  38 Oct 24 07:48 requirements.txt

./composeexample:
total 20
-rw-r--r-- 1 root root  405 Oct 24 08:08 asgi.py
-rw-r--r-- 1 root root    0 Oct 24 08:08 __init__.py
drwxr-xr-x 2 root root  122 Oct 24 08:17 __pycache__
-rw-r--r-- 1 root root 3086 Oct 24 08:10 settings-bk201024.py
-rw-r--r-- 1 root root 3182 Oct 24 08:17 settings.py
-rw-r--r-- 1 root root  756 Oct 24 08:08 urls.py
-rw-r--r-- 1 root root  405 Oct 24 08:08 wsgi.py

./composeexample/__pycache__:
total 16
-rw-r--r-- 1 root root  123 Oct 24 08:11 __init__.cpython-39.pyc
-rw-r--r-- 1 root root 2269 Oct 24 08:17 settings.cpython-39.pyc
-rw-r--r-- 1 root root  907 Oct 24 08:11 urls.cpython-39.pyc
-rw-r--r-- 1 root root  540 Oct 24 08:11 wsgi.cpython-39.pyc

./haproxy:
total 4
-rw-r--r-- 1 root root 3375 Oct 25 15:36 haproxy.cfg

3)启动haproxy

[root@tango-01 my_django]# docker-compose build
db uses an image, skipping
haproxy uses an image, skipping
Building web1
Step 1/7 : FROM python:3
 ---> 5336a27a9b1f
Step 2/7 : ENV PYTHONUNBUFFERED=1
 ---> Using cache
 ---> abb90a7e7d6a
Step 3/7 : RUN mkdir /code
 ---> Using cache
 ---> 7b1d83046ccb
Step 4/7 : WORKDIR /code
 ---> Using cache
 ---> 8762b6c51840
Step 5/7 : COPY requirements.txt /code/
 ---> Using cache
 ---> 9568943f3862
Step 6/7 : RUN pip install -r requirements.txt
 ---> Using cache
 ---> fc255cdfc761
Step 7/7 : COPY . /code/
 ---> Using cache
 ---> d4f9e243da50

Successfully built d4f9e243da50
Successfully tagged my_django_web1:latest
Building web2
Step 1/7 : FROM python:3
 ---> 5336a27a9b1f
Step 2/7 : ENV PYTHONUNBUFFERED=1
 ---> Using cache
 ---> abb90a7e7d6a
Step 3/7 : RUN mkdir /code
 ---> Using cache
 ---> 7b1d83046ccb
Step 4/7 : WORKDIR /code
 ---> Using cache
 ---> 8762b6c51840
Step 5/7 : COPY requirements.txt /code/
 ---> Using cache
 ---> 9568943f3862
Step 6/7 : RUN pip install -r requirements.txt
 ---> Using cache
 ---> fc255cdfc761
Step 7/7 : COPY . /code/
 ---> Using cache
 ---> d4f9e243da50

Successfully built d4f9e243da50
Successfully tagged my_django_web2:latest
[root@tango-01 my_django]# docker-compose up
WARNING: Found orphan containers (my_django_django_1, my_django_web_2, my_django_django_2, my_django_web_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Starting my_django_db_1 ... done
Starting my_django_web1_1 ... done
Starting my_django_web2_1 ... done
Starting my_django_haproxy_1 ... done
Attaching to my_django_db_1, my_django_web1_1, my_django_web2_1, my_django_haproxy_1
db_1       | 
db_1       | PostgreSQL Database directory appears to contain a database; Skipping initialization
db_1       | 
db_1       | 2020-10-25 12:13:13.381 UTC [1] LOG:  starting PostgreSQL 13.0 (Debian 13.0-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
db_1       | 2020-10-25 12:13:13.381 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db_1       | 2020-10-25 12:13:13.381 UTC [1] LOG:  listening on IPv6 address "::", port 5432
db_1       | 2020-10-25 12:13:13.384 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1       | 2020-10-25 12:13:13.390 UTC [23] LOG:  database system was shut down at 2020-10-25 12:12:16 UTC
db_1       | 2020-10-25 12:13:13.395 UTC [1] LOG:  database system is ready to accept connections
haproxy_1  | [NOTICE] 298/121314 (1) : New worker #1 (7) forked
haproxy_1  | [WARNING] 298/121314 (7) : Server backend_web/server1 is DOWN, reason: Layer4 connection problem, info: "Connection refused", check duration: 0ms. 1 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
haproxy_1  | [WARNING] 298/121315 (7) : Server backend_web/server2 is DOWN, reason: Layer4 connection problem, info: "Connection refused", check duration: 0ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
haproxy_1  | [NOTICE] 298/121315 (7) : haproxy version is 2.2.4-de45672
haproxy_1  | [NOTICE] 298/121315 (7) : path to executable is /usr/local/sbin/haproxy
haproxy_1  | [ALERT] 298/121315 (7) : backend 'backend_web' has no server available!
web1_1     | Watching for file changes with StatReloader
web1_1     | Performing system checks...
web1_1     | 
web2_1     | Watching for file changes with StatReloader
web2_1     | Performing system checks...
web2_1     | 
web1_1     | System check identified no issues (0 silenced).
web2_1     | System check identified no issues (0 silenced).
web1_1     | 
web1_1     | You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
web1_1     | Run 'python manage.py migrate' to apply them.
web1_1     | October 25, 2020 - 12:13:16
web1_1     | Django version 3.1.2, using settings 'composeexample.settings'
web1_1     | Starting development server at http://0.0.0.0:8000/
web1_1     | Quit the server with CONTROL-C.
web2_1     | 
web2_1     | You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
web2_1     | Run 'python manage.py migrate' to apply them.
web2_1     | October 25, 2020 - 12:13:16
web2_1     | Django version 3.1.2, using settings 'composeexample.settings'
web2_1     | Starting development server at http://0.0.0.0:8000/
web2_1     | Quit the server with CONTROL-C. 
[root@tango-01 /]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                            NAMES
3b42a68d193d        haproxy:latest      "/docker-entrypoint.…"   23 seconds ago      Up 21 seconds       0.0.0.0:8000->8000/tcp, 0.0.0.0:8088->8088/tcp   my_django_haproxy_1
6d9c71d42fc7        my_django_web1      "python manage.py ru…"   24 seconds ago      Up 22 seconds       0.0.0.0:32787->8000/tcp                          my_django_web1_1
3f68aebeb03d        my_django_web2      "python manage.py ru…"   24 seconds ago      Up 22 seconds       0.0.0.0:32786->8000/tcp                          my_django_web2_1
4cb012feb0d9        postgres            "docker-entrypoint.s…"   36 hours ago        Up 24 seconds       5432/tcp

4)使用浏览器访问hapeoxy监听的8000端口可以看到负载的情况

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KHbd7ijJ-1637370995491)(https://note.youdao.com/favicon.ico)]

查看log日志,看到访问已经在web1和web2切换

haproxy_1  | [WARNING] 298/121415 (7) : Server backend_web/server1 is UP, reason: Layer4 check passed, check duration: 0ms. 1 active and 0 backup servers online. 0 sessions requeued, 0 total in queue.
haproxy_1  | [WARNING] 298/121416 (7) : Server backend_web/server2 is UP, reason: Layer4 check passed, check duration: 0ms. 2 active and 0 backup servers online. 0 sessions requeued, 0 total in queue.
web1_1     | [25/Oct/2020 12:14:17] "GET / HTTP/1.1" 200 16351
web2_1     | [25/Oct/2020 12:14:17] "GET /static/admin/css/fonts.css HTTP/1.1" 304 0
web2_1     | [25/Oct/2020 12:14:18] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 304 0
web1_1     | [25/Oct/2020 12:14:18] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 304 0
web1_1     | [25/Oct/2020 12:14:18] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 304 0
web2_1     | [25/Oct/2020 12:15:14] "GET / HTTP/1.1" 200 16351
web1_1     | [25/Oct/2020 12:15:19] "GET / HTTP/1.1" 200 16351

5)访问 http://192.168.112.10:8088/haproxy-stats,可以看到后端节点的监控状况
在这里插入图片描述


参考资料:

  1. https://docs.docker.com/compose/

转载请注明原文地址:https://blog.youkuaiyun.com/solihawk/article/details/121434982
文章会同步在公众号“牧羊人的方向”更新,感兴趣的可以关注公众号,谢谢!
在这里插入图片描述

docker-compose安装(2020最新版) compose官方文档:https://docs.docker.com/compose/install/#install-compose 一、官方也将了依赖这些依赖包 我没通过curl下载,个人感觉自己网不好,速度太慢了 官方提供的方法安装: sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/ 阅读详情

相关推荐

【云原生之Docker实战】部署轻量级容器云管理平台Humpback

【云原生之Docker实战】部署轻量级容器云管理平台Humpback

jks212454的博客 2088

Docker-compose搭建Kafka(并开启kafka manage界面)

docker-compose搭建kafka

yqyn6的博客 1219

合宙ESP32C3实战:MPU6500六轴传感器数据读取与校准全解析

本文详细解析了如何使用合宙ESP32C3开发板读取和校准MPU6500六轴姿态传感器数据。从硬件接线、开发环境搭建到核心代码解析,提供了全面的实战指南,帮助开发者快速掌握传感器配置与数据处理技巧,适用于姿态控制、运动检测等应用场景。

weixin_27066963的博客 404

三年后,我们从 Docker 转到了 RKT

在 Swarm 被纳入 Docker 1.12后,Swarm 与 K8S 之争日趋白热化。本文作者 Adriaan de Jonge 身为 Xebia CTO ,专精 DevOps 及持续交付,曾为 Docker 摇旗呐喊三年的老司机,如今开始易帜。 现在即使是最酷的产品也绑定于某个特定供应商。不管在过去的三年里,我曾多么热衷 Docke...

weixin_34080903的博客 394

STM32CubeMX、keil、simulink联合开发MCU教程

一、整体思路 利用Matlab的simulink搭建模型生成C代码,通过stm32cubemx生成工程,最后在KEIL或者IAR等工具里面编译生成代码下载至MCU中执行。 本文以流水灯建立模型和简单使用定时器为例进行演示。 二、开发环境 1、安装Matlab Matlab版本建议在2013B以上,本文使用Matlab 2016a。 2、安装STM32硬件支持包 下载地址(https://www.stmcu.org.cn/document/detail/index/id-216053) 安装完成后重启MAT

tzlaa的博客 7734

7.3 空间矢量调制(SVM)整数算法

本文提出了一种基于整数运算的空间矢量调制(SVM)优化实现方案,适用于计算资源有限的Cortex-M0平台。针对传统SVM算法中复杂的三角函数和浮点运算问题,重点优化了扇区判断和占空比计算两个关键环节。在扇区判断方面,采用基于电压分量符号和相对大小的三变量法,避免了角度计算;在占空比计算方面,通过几何关系将作用时间表示为电压分量的线性组合,并采用定点数实现。方案还详细讨论了系数定点化、死区补偿等实现细节,在保证精度的同时显著降低了计算复杂度。实验结果表明,优化后的整数算法在M0平台上仅需50-80个周期即可

技术工作者 942

Spring Springmvc整合后项目有关两个ioc容器的问题

Spring SpringMVC整合后项目其实存在两个ioc容器 这两个容器的特点: spring和springMVC的容器的关系: spring 容器称为父容器 springMVC 容器称为子容器 外界不能直接访问父容器bean,只能访问子容器bean。 父容器不能访问子容器bean。 子容器能够访问父容器bean。 ...

qq_20156289的博客 1422

lammps多晶正弦粗糙界面建模

其中,30可以理解为正弦曲线的幅度,150为正弦曲线的基准坐标值,80控制周期,改变参数多试试就能找到规律。很久之前介绍过lammps粗糙界面建模,主要是在lammps中进行一维和二维的正弦粗糙面建模。运行完成后,会生成final.data,这个模型即为上表面为正弦波动的粗糙界面。新建1.py文件,粘贴下面内容后,运行:python 1.py。多晶需要在atomsk中进行,因此上述的方法就不再适用。最近有学员咨询多晶模型的正弦粗糙界面建模应该如何实现。在cmd窗口按顺序运行以下命令创建多晶模型。

lammps_jiayou的博客 386

轻笔记显示无法连接到服务器,centos 6.5 + haproxy 1.4搭配之 haproxy不记录日志一则轻笔记...

重启haproxy(提示后端上游服务器没有开启)[root@localhostvagrant]#cat/var/log/haproxy.logJun709:46:23localhosthaproxy[2479]:Proxymainstarted.Jun709:46:23localhosthaproxy[2479]:Proxystaticstarted.Jun...

weixin_42526417的博客 738

PCL 模型滤波器【2025最新版】

根据给定的模型系数在点云中提取对应于模型的点云数据。博客长期更新,本文最新更新时间为:2025年6月17日。

点云侠的博客 4382

华为OD机试真题 新系统【网络数据包收发处理】

华为OD机试 新系统真题【网络数据包收发处理】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【网络数据包收发处理】多语言题解。

qq_45776114的博客 442

docker:docker prune命令 可定时清理不常用数据

场景:使用docker引擎服务时间久了,会发现磁盘空间越来越大,现在要删除关于docker相关不用的数据来释放磁盘空间 先看下docker system命令 docker system 目前拥有四个子命令,分别是: docker system df docker system events docker system info docker system prune docker system 其中最重要的一个命令就是 docker system prune 命令,清理没有使用的数据,包括镜像数据,已经停

CN_Eden 4万+

PHM2010刀具磨损预测完整实现

本文介绍了PHM2010刀具磨损预测项目的完整实现方案。项目采用PHM2010公开数据集,包含6个子数据集,记录了铣削加工过程中7个通道的传感器数据(切削力、振动和声发射信号)。技术路线包括数据预处理(截取中间10万点、小波降噪)、特征提取(时域9个、频域4个特征)、特征融合和皮尔逊相关系数筛选,最终使用BiLSTM模型进行训练和评估。环境配置基于Python 3.9,依赖NumPy、Pandas、PyTorch等库。数据加载和预处理阶段重点处理了传感器信号分段和磨损标签对齐问题,为后续建模奠定基础。

huanghm88的专栏 415

Docker容器与容器云

1.Docker镜像是一个只读的Docker容器模板,含有启动Docker容器所需的文件系统结构及其内容,因此是启动一个Docker容器的基础,镜像文件内容以及一些运行Docker容器的配置文件组成了Docker容器的静态文件系统运行环境——rootfs。1.编排,即orchestration,它根据被部署对象之间的耦合关系,以及被部署对象对环境依赖,制定部署流程中各个动作的执行顺序,部署过程所需要的依赖文件和被部署文件的存储位置和获取 方式,以及如何验证部署成功。1.docker rmi命令删除镜像;

2301_78102191的博客 1694

Serdes之什么是(CDR)?

光收发器和电收发器使用的是我们所说的串行数据通信。在这种通信方式中,数据位是按顺序一个接一个地传输的。光收发器和电收发器使用的是我们所说的串行数据通信。在这种通信方式中,数据位是按顺序一个接一个地传输的。目前市场上大多数收发器都没有专用的时钟输入,因此时钟恢复和数据重新定时等功能是在收发器外部(即在主板上)进行的。接收端则需要恢复时钟以采样串行线上的数据。为了实现这一点,接收端需要一个与输入数据频率大致相同的时钟。通过使参考时钟与输入数据信号的跳变相位对齐,可以生成一个恢复的时钟。这被称为时钟恢复。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 2388

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

linux容器技术 pdf,Docker 容器与容器云pdf

Docker 容器与容器云 内容简介本书从实践者的角度,在讲解Docker高级实践技巧的同时,深入到源代码层次,为读者梳理出Docker容器技术和基于Docker的容器云技术(如Kubernetes)的实现方法和设计思路,帮助读者理解如何在实际场景中利用Docker解决问题并启发新的思考。全书包括两部分,第一部分深入解读Docker容器技术,包括Docker入门、架构总览、Docker容器核心原理...

weixin_39584405的博客 473

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Docker三剑客(三大编排工具):Compose、Machine和Swarm

在实际生产环境中,一个应用往往由许多服务构成,而docker 的最佳实践是一个容器只运行一个进程,因此运行多个微服务就要运行多个容器。多个容器协同工作需要一个有效的工具来管理他们,定义这些容器如何相互关联。compose 应运而生。注:compose:[kəmˈpəʊz],组成;作曲;构成(一个整体);创作(音乐);撰写(信函、讲稿、诗歌等);排…的版compose 使用 YAML 文件来定义多容器之间的关系,一个 docker-compose up 就可以把完整的应用跑起来。

顺其自然~专栏 2391

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

容器云服务是什么?

容器云是一种以容器技术为核心的云计算服务形态,其核心目标是通过标准化封装应用及其依赖环境,实现跨平台快速部署和高效管理。容器技术将应用程序与所需的运行库、配置等资源打包为轻量化的独立单元(容器),确保应用在不同计算环境中保持行为一致性。

1598

全国职业技能大赛私有云容器云边缘计算系列学习笔记

全国职业技能大赛容器云运维

qq_45817836的博客 2318

容器云系列之Docker Swarm集群管理

Docker Swarm是Docker的集群管理工具,它提供了标准的Docker API,所有任何已经与Docker守护程序通信的工具都可以使用Swarm轻松地扩展到多个主机。支持的工具包括Dokku、Docker Compose、Docker Machine和Jenkins等。

牧羊人的方向 3686

docker swarm 固定ip_每周一书《Docker 容器与容器云》分享!

内容简介本书根据Docker 1.10版和Kubernetes 1.2版对第1版进行了全面更新,从实践者的角度出发,以Docker和Kubernetes为重点,沿着“基本用法介绍”到“核心原理解读”到“高级实践技巧”的思路,一本书讲透当前主流的容器和容器云技术,有助于读者在实际场景中利用Docker容器和容器云解决问题并启发新的思考。全书包括两部分,首部分深入解读Docker容器技术,包括Dock...

weixin_33873965的博客 153

容器云练习-基于Docker Compose编排ERP管理系统

本文介绍了ERP系统作为企业"中央大脑"的重要作用,能有效整合各部门数据流程。随后详细演示了在CentOS7环境下使用Docker容器化部署ERP系统的完整过程,包括:1)构建MySQL数据库、Redis缓存、Nginx服务和Java应用四个核心镜像;2)通过docker-compose编排容器;3)最终验证系统可用性。该方案采用微服务架构,将ERP系统分解为独立容器(数据库3306、Redis6379、Java服务9999、Nginx8080),实现了经销管理系统的现代化部署,展现了容

2401_88224536的博客 317

2022 年全国职业院校技能大赛高职组云计算正式赛卷第二场-容器云

年全国职业院校技能大赛高职组云计算赛项试卷【赛程名称】云计算赛项第二场容器云说明:完成本任务需要两台安装了CentOS7.9操作系统的云主机:master和node。ChinaskillCloudPaaSiso镜像包中有本次容器云部署所需的所有文件,运维所需的文件见附件。某公司技术部产品开发上线周期长,客户的需求经常得不到及时响应。引入CICD持续集成、ry持续交付成了公司的当务之急,研发团队决定搭建基于Kubernetes的。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 3063

容器云部分题目

容器云 在master节点上编写/root/wordpress/docker-compose.yaml文件,具体要求如下: (1)容器名称:wordpress;镜像:wordpress:latest;端口映射:82:80; (2)容器名称:mysql;镜像:mysql:5.6; (3)MySQLroot用户密码:123456; (4)创建数据库wordpress。 完成后编排部署WordPress。 mkdir wordpress cd wordpress vi docker-compose.yaml

user_from_future的博客 4903

书籍-Docker 容器与容器云

内容简介 本书从实践者的角度,在讲解Docker高级实践技巧的同时,深入到源代码层次,为读者梳理出Docker容器技术和基于Docker的容器云技术(如Kubernetes)的实现方法和设计思路,帮助读者理解如何在实际场景中利用Docker解决问题并启发新的思考。全书包括两部分,第一部分深入解读Docker容器技术,包括Docker入门、架构总览、Docker容器核心原理解读,以及Docker高级

风流三月1 1540

2022国赛云计算容器云(docker-compose)

【题目 5】编排部署 Hyperf 框架[3.5 分] 编写/root/hyperf/project/docker-compose.yaml 文件,具体要求如下: (1)容器 1 名称:hyperf-mysql;镜像:hyperf-mariadb:v1.0;(2)容器 2 名称:hyperf-redis;镜像:hyperf-redis:v1.0;(3)容器 3 名称:hyperf-ui;镜像:hyperf-nginx:v1.0;端口映射:80:8081;(4)容器 4 名称:hyperf-service;

qq_56370661的博客 2971
上一篇: 容器云系列之Docker网络管理及容器互联
下一篇: 容器云系列之Docker管理工具Docker Machine
solihawk
博客等级 码龄17年 7995粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值