常用命令整理(持续更新)

目录

1、配置Linux网络IP

2、修改docker0网桥、docker_gwbridge网桥地址

3、 selinux开启状态,会导致docker容器产生服务异常,导致宕机,关闭方式如下:

4、中间件proxy代理容器进入数据库命令

5、调整相关内核参数

6、单机调整nginx相关参数

7、redis

8、MySQL数据库

9、查看有哪些定时任务

10、查看es集群状态

11、k8s下拷贝某个路径

12、rabbitmq

13、在大多数文本编辑器和集成开发环境(IDE)中,注释的快捷键通常是:

14、配置nfs共享目录

15.ntp时间同步

16.centos根目录扩容

17.磁盘扩容

18. Linux快捷替换文件中的路径

 19.compose语法关键字介绍


1、配置Linux网络IP

一般存放在/etc/sysconfig/network-scripts/路径下

文件一般为ifcfg-ens33或192

修改BOOTPROTO=static 固定IP是none 、static

修改ONBOOT=yes

IPADDR=IP地址

NETMASK=子网掩码

GATEWAY=网关

DNS=域名解析服务器的IP地址

修改主机名:

1.sudo hostnamectl set-hostname newname 
​
2.systemctl restart systemd-hostnamed

cp 操作,备份目录使用 cp -arfp 参数,scp传文件夹使用 scp -r ,kubectl cp 文件夹使用 cp a 参数

!+ 行数,可以直接执行Linux的历史第n行命令

Ctrl+R可以快捷搜索历史命令,Ctrl+L快捷清屏

Alt+Shift可以选中多行进行编辑,可以在首行点击一下,滑动到末尾按住Alt+Shift点击即可

查看centos系统版本:

cat /etc/redhat-release

Linux快捷替换文件中的路径: "/"一般作为分割线,路径中的正斜杠需替换为反斜杠''"或使用":"分割

sed -i 's:/home/user/old_folder:/home/user/new_folder:g' example.txt

快捷替换文字:用/分割开替换前和后

 sed -i 's/v8.0.17.16/v8.0.17.17/g' middleware-master-cluster.yml  

添加标签: 需注意节点标签不可重复

docker  node  update  --label-add  nodetype=Chunfeng-river  nodeid

查看swarm节点标签

docker node inspect nodeid --pretty|head

临时关闭某个service

docker service scale proxy_proxy=1

2、修改docker0网桥、docker_gwbridge网桥地址

vi /etc/docker/daemon.json 文件

{
  "bip": "172.201.0.1/16",
  "default-address-pools": [
    {"base": "172.201.0.0/16", "size": 24}
  ]
}

第一行是docker0,第二行是docker_gwbridge 注意应在创建docker swarm集群前修改,如果是之后,应先

docker network rm docker_gwbridge

再重启docker

重建docker网络,网段根据实际情况更改 如使用默认网段则去掉--subnet

docker network create macrowing --driver overlay --subnet 192.168.200.0/24

修改 Docker 的存储路径,需要进行以下步骤:

  1. 停止 Docker 服务:打开终端(或命令提示符)并执行以下命令以停止 Docker 服务:

    sudo systemctl stop docker
    
  2. 备份现有的 Docker 数据文件:将当前存储路径下的所有 Docker 数据文件复制到新的存储路径中,以便将现有数据迁移到新路径。

  3. 编辑 Docker 配置文件:使用文本编辑器打开 Docker 的配置文件。在大多数 Linux 系统中,该文件位于 /etc/docker/daemon.json/etc/docker/daemon.conf

  4. 添加存储路径配置:在配置文件中添加一个 data-root 键,并设置其值为新的存储路径。例如:

    {
      "data-root": "/new/storage/path"
    }
    
  5. 保存并关闭配置文件。

  6. 创建新的存储路径:使用以下命令创建新的存储路径:

    sudo mkdir /new/storage/path
    
  7. 设置新的存储路径的权限:确保新的存储路径具有适当的权限,以便 Docker 可以访问和写入该目录。使用以下命令更改新路径的权限(根据需要进行调整):

    sudo chown -R $USER:$USER /new/storage/path
    
  8. 启动 Docker 服务:执行以下命令启动 Docker 服务:

    sudo systemctl start docker
    

3、 selinux开启状态,会导致docker容器产生服务异常,导致宕机,关闭方式如下:

1.临时调整为关闭状态:

setenforce 0

2.调整后修改配置文件永久生效

vi /etc/selinux/config #修改为SELINUX=disabled 
ls |wc -l #可查看目录下文件个数

docker swarm init --advertise-addr=本机IP地址

4、中间件proxy代理容器进入数据库命令

 mysql -urepl -pXJdooy -h middle-proxy -P 3306 

5、调整相关内核参数

echo "vm.max_map_count=262144" >> /etc/sysctl.conf
echo "vm.min_free_kbytes=1024000" >> /etc/sysctl.conf 
echo "net.core.somaxconn=2048" >> /etc/sysctl.conf 
echo "vm.swappiness=0" >> /etc/sysctl.conf 
echo " net.ipv4.ip_local_port_range=65300 1024 " >> /etc/sysctl.conf
echo " fs.inotify.max_user_watches=1048576 " >> /etc/sysctl.conf
echo " net.ipv4.ip_forward=1 " >> /etc/sysctl.conf
echo " net.ipv4.vs.expire_nodest_conn=1 " >> /etc/sysctl.conf
echo "fs.file-max=655360" >> /etc/sysctl.conf
echo "* - nofile 655350" >> /etc/security/limits.conf
echo "* - nproc 65500" >> /etc/security/limits.conf
ulimit -HSn 655300

sysctl -p 使上述命令生效

6、单机调整nginx相关参数

进入容器,nginx -T查看相关配置

一般配置文件存放在在/etc/nginx/nginx.conf 或/etc/nginx/conf.d/default.conf

修改后先执行nginx -T查看一下,再执行 nginx -s reload 进行热加载

7、redis

redis-cil

auth  PassWord 

查看redis集群状态命令 : info replication

清空redis缓存

redis-cli
auth PassWord

执行清除命令

flushall

查询key是否存在

keys "key1"

清空指定key值的缓存

del key1 key2 ...

8、MySQL数据库

1.数据库集群状态查看:select * from performance_schema.replication_group_members;

2.备份表:要备份MySQL表的数据,您可以使用以下语句创建表的备份:

CREATE TABLE backup_table AS SELECT * FROM original_table;

上述语句将创建一个名为backup_table的新表,并将original_table的内容复制到该表中。您可以根据需要自定义备份表的名称和原始表的名字。

请注意,这只是一个基本的备份方法,仅复制表的数据。如果您需要更全面的备份,包括表结构、索引和其他元数据,建议使用MySQL的官方工具mysqldump。mysqldump可以生成一个完整的数据库备份文件,包括表的结构和数据。

以下是使用mysqldump进行表备份的示例:

mysqldump -u username -p database_name table_name > backup.sql

上述命令将要求您输入数据库的用户名(username)和数据库名称(database_name),并将表(table_name)的备份保存在名为backup.sql的文件中。

请确保在执行任何备份操作之前,先备份重要的数据,并仔细检查备份文件的完整性和准确性。


3.还原备份

要还原MySQL表的备份,您可以使用以下步骤:

  1. 打开终端或命令行界面,并登录到MySQL服务器。

  2. 创建一个新的数据库(如果尚未创建)。

  3. 进入新创建的数据库。

  4. 执行以下命令将备份文件中的数据导入到新数据库中:

source /path/to/backup_file.sql;

上述命令将还原备份文件中的所有表和数据到新数据库中。

请注意,在执行还原操作之前,请确保已经备份了原始数据,以防止意外数据丢失。此外,如果您使用的是物理备份,请确保在还原之前关闭MySQL服务器,并按照官方文档或备份软件提供的指南进行还原操作。


4.使用CREATE TABLE backup_table AS SELECT * FROM original_table;这种方式备份的表可以通过以下步骤进行还原:

  1. 打开终端或命令行界面,并登录到MySQL服务器。

  2. 进入备份表所在的数据库。

  3. 删除原始表(如果需要)。

  4. 将备份表重命名为原始表的名称。

  5. 刷新数据库,以确保表结构生效。

以下是具体的步骤:

  1. 进入MySQL服务器,使用以下命令选择要还原的数据库:

USE database_name;
  1. 删除原始表(如果需要):

DROP TABLE IF EXISTS original_table;
  1. 将备份表重命名为原始表的名称:

RENAME TABLE backup_table TO original_table;
  1. 刷新数据库,以确保表结构生效:

FLUSH TABLES;

现在,原始表的备份已经成功还原到原始的名称和结构。请确保在执行任何还原操作之前,已经备份了原始数据,以防止意外数据丢失。

要查看MySQL表的结构,您可以使用以下SQL语句:

DESCRIBE table_name;

或者使用以下语句:

SHOW COLUMNS FROM table_name;

将 "table_name" 替换为您要查看结构的表的名称。执行这些语句后,将返回包含有关表结构的结果集,包括列名、数据类型、键信息和其他属性

9、查看有哪些定时任务

crontab -l

10、查看es集群状态

curl -XGET http://<es-host>:<es-port>/_cluster/health?v

查看集群下有无任务堆积

curl -s es0:9200/_cluster/pending_tasks

查看es节点信息

curl -s es0:9200/_cat/nodes?v

查询es中存储的文件内容索引

curl -s es:9200/file_1/_doc/文件id?pretty

查看es分片数量

curl -s es:9200/_cat/shards

11、k8s下拷贝某个路径

kubectl cp a podname:/path/ /root/path/ -n namespace

12、rabbitmq

方法一: 通过命令行查询

连接运行rabbitmq的服务器,执行如下命令:

docker exec $(docker ps | grep rabbitmq | awk '{print $1}') rabbitmqctl list_queues --no-table-headers | awk 'NR!=1&&NR!=2{print}' | sort -nr -k 2

rabbitmqctl list_queues --no-table-headers | awk 'NR!=1&&NR!=2{print}' | sort -nr -k 2

方法二:每秒输出消息数量

#!/bin/bash
#
while true
do
    docker exec $(docker ps | grep rabbitmq | awk '{print $1}') rabbitmqctl list_queues --no-table-headers | awk 'NR!=1&&NR!=2{print}' | sort -nr -k 2 >> 1.log
    date >> 1.log
    sleep 1
done

ctrl+c 结束

cat 1.log 查日志

13、在大多数文本编辑器和集成开发环境(IDE)中,注释的快捷键通常是:

  1. 单行注释:将光标所在行或选定的代码行注释掉。

    • Windows和Linux系统:Ctrl + / 或 Ctrl + Shift + /

    • macOS:Command + / 或 Command + Shift + /

  2. 多行注释:将选定的多行代码块注释掉。

    • Windows和Linux系统:Ctrl + Shift + /(在一些编辑器中也可以使用Ctrl + K + C)

    • macOS:Command + Shift + /(在一些编辑器中也可以使用Command + /)

14、配置nfs共享目录

  1. NFS server端安装 需共享出去的服务器

yum -y install nfs-utils rpcbind

  1. 配置nfs

vi /etc/exports

/opt/data *(rw,no_root_squash,no_all_squash,anonuid=0,anongid=0,sync)

注: 以上例子是通过NFS共享本地的/opt/data ,部署时请根据实际情况修改目录

  1. 启动nfs服务

systemctl start rpcbind

systemctl start nfs

systemctl enable rpcbind

systemctl enable nfs

  1. 客户端挂载nfs

检查本地是否支持nfs文件系统

rpm -qa |grep nfs-utils

以上命令有输出说明己支持nfs文件系统

如果不支持需要安装nfs-utils

yum -y install nfs-utils

5.挂载NFS

mkdir /nfs

mount -t nfs -o noac,nfsvers=4,_netdev NFS_SERVER_IP:/opt/data /nfs

6.设置开机自动挂载

vi /etc/fstab

NFS_SERVER_IP:/opt/data  /nfs nfs  defaults,nfsvers=4,_netdev,noac  0  0 

注: /nfs为本地路径,如果不存在,需要使用mkdir创建

NFS_SERVER_IP 为NFS server的ip

/opt/data 为nfs服务端共享的路径

请根据实际情况修改 /nfs,NFS_SERVER_IP,/opt/data 三个参数

15.ntp时间同步

1 NTP服务安装

如果当前环境可以联网:

yum install ntp -y

如果不能联网,需要提前下载好ntp服务安装包:

 # 下载相关包,放在同一个目录中,假设为目录名为ntpcurl -o autogen-libopts-5.18-5.el7.x86_64.rpm 
 curl -o ntp-4.2.6p5-28.el7.centos.x86_64.rpm 
 curl -o ntpdate-4.2.6p5-28.el7.centos.x86_64.rpm 
 # 进入ntp目录,执行安装命令yum localinstall *.rpm

2 NTP服务配置

如果服务器不能联网,需要客户提供内网的NTP服务器;

如果可以联网,一般配置阿里云的时间服务器,ntp1.aliyun.com,ntp2.aliyun.com

详细步骤如下:

 # 对原配置文件进行备份
mv /etc/ntp.conf{,bak}
 # 编辑配置文件,增加时间服务器
vi /etc/ntp.conf
driftfile /var/lib/ntp/drift
pidfile /var/run/ntpd.pid
logfile /var/log/ntp.log
# Access Control Support
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap nopeer noquery
# local clock
server 127.127.1.0
fudge 127.127.1.0 stratum 10
#阿里云的ntp服务器,这里可以配置多个;
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst

启动ntp服务并设置开机启动:

systemctl start ntpd && systemctl enable ntpd

验证时间同步:

ntpq -p

注意:LOCAL前面的 * 号,表示ntp服务已正常与本机进行同步

3 时区设置 环境变量配置: TZ=Asia/Shanghai

16.centos根目录扩容

1.查看本机磁盘环境

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   35G  5.5G   30G   16% /
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G   11M  3.9G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/sda1               1014M  275M  740M   28% /boot
tmpfs                    783M   52K  783M    1% /run/user/0
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0               2:0    1    4K  0 disk
sda               8:0    0  500G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   39G  0 part
  ├─centos-root 253:0    0   35G  0 lvm  /
  └─centos-swap 253:1    0    4G  0 lvm  [SWAP]

可以看到根目录总容量为35G, 设备sda 的总容量为500G。

2.添加磁盘分区

[root@localhost ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p):
Using default response p
分区号 (3,4,默认 3):
起始 扇区 (83886080-1048575999,默认为 83886080):
将使用默认值 83886080
Last 扇区, +扇区 or +size{K,M,G} (83886080-1048575999,默认为 1048575999):+85G
分区 3 已设置为 Linux 类型,大小设为 85 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

[root@localhost ~]# partprobe /dev/sda   #刷新分区
pvcreate /dev/sda3                       #创建分区3

3.然后查看分区是否创建:

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0               2:0    1    4K  0 disk
sda               8:0    0  500G  0 disk
├─sda1            8:1    0    1G  0 part /boot
├─sda2            8:2    0   39G  0 part
│ ├─centos-root 253:0    0   35G  0 lvm  /
│ └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
└─sda3            8:3    0   85G  0 part
sr0              11:0    1 1024M  0 rom

可以看到sda2 分区已创建。

4.开始扩容

4.1创建物理卷:

[root@localhost ~]# lvm
lvm> pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

4.2查看物理卷和卷组:

lvm> pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <39.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              9983
  Free PE               0
  Allocated PE          9983
  PV UUID               twmUZh-Vnqq-W5Pd-v3ms-6OkH-sSTs-nv8aA8

  "/dev/sda3" is a new physical volume of "85.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name
  PV Size               85.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               vTD91f-b28E-GgL0-XsqI-ipQ5-rscT-GcQbT6

lvm> vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <39.00 GiB
  PE Size               4.00 MiB
  Total PE              9983
  Alloc PE / Size       9983 / <39.00 GiB
  Free  PE / Size       0 / 0
  VG UUID               238Yz8-MEQa-NT6a-3aHC-J3TZ-mGux-e9vqPf

4.3将物理卷加入到卷组:

lvm> vgextend centos /dev/sda3
  Volume group "centos" successfully extended
lvm> vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               123.99 GiB
  PE Size               4.00 MiB
  Total PE              31742
  Alloc PE / Size       9983 / <39.00 GiB
  Free  PE / Size       21759 / <85.00 GiB
  VG UUID               238Yz8-MEQa-NT6a-3aHC-J3TZ-mGux-e9vqPf

可以看到卷组的Free size 增加了

4.4将卷组剩余空间(刚添加的85G)添加到逻辑卷/dev/centos/root :

lvm> lvextend -l +100%FREE /dev/centos/root
  Size of logical volume centos/root changed from <35.00 GiB (8959 extents) to 119.99 GiB (30718 extents).
  Logical volume centos/root successfully resized.

5.同步到文件系统

5.1之前只是对逻辑卷扩容,还要同步到文件系统,实现对根目录的扩容。

[root@localhost ~]# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=2293504 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=9174016, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=4479, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 9174016 to 31455232

5.2然后再查看挂载情况:

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root  120G  5.5G  115G    5% /
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G   11M  3.9G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/sda1               1014M  275M  740M   28% /boot
tmpfs                    783M   52K  783M    1% /run/user/0

可以发现有120G的空间挂载在根目录上。

17.磁盘扩容

1.目的

针对Linux服务器的LVM磁盘扩容

2.注意事项

1)扩容前请谨慎确认,小心操作,避免操作失误;

2)扩容后的磁盘无法从vg卷组里面移除,只能扩容,无法缩减;

3.操作步骤

1、查看需要扩容的分区的lv名 如果不是lvm类型不能进行扩容

使用lvdisplay

2、初始化新加的磁盘

假设新加的硬盘设备名为 /dev/sdb

img

3、新建分区有两种方式

方式一:

fdisk //这种方式最大只支持单分区2T ,单分区超过2T的可以使用parted

img

方式二:

使用parted进行分区,操作步骤如下:

parted /dev/sdb mklabel gpt #修改磁盘sdb的分区类型为gpt,mbr分区支持最大空间大小为2T

parted /dev/sdb mkpart primary 0 100% #分区使用sdb的100%的空间

partprobe #使分区生效

4、 扩容

常用命令:

pvs: 查看所有pv信息

vgs: 查看vg卷组信息

lvs: 查看lvm逻辑卷信息

pvcreate /dev/sdb1

img

vgextend centos /dev/sdb1 //将centos替换为真实的卷组名称

img

lvextend -L +szie /dev/centos/root // 将/dev/centos/root 换成要扩容的lv逻辑卷, size 为扩容的磁盘容量大小

img

或 扩充剩余 vg 的所有的存储的大小:lvextend -l +100%FREE /dev/centos/root

执行完成之后使用df -hT查看分区并没有变化,需要按实际环境执行下面的命令:

## XFS文件系统执行 xfs_growfs /dev/centos/root

4.常见问题

问题1:

xfs_growfs:/dev/vda1 is not a mounted XFS filesystem

解决办法:

需要执行xfs_growfs --help ,确认使用方式,按照文档说明使用;例如: xfs_growfs / 这里的/就是挂载点

原因:

新旧版本的xfs_growfs命令使用问题。

新版的xfs_growfs命令后面的参数需要为文件系统挂载点,而非文件系统本身;

## EXT4文件系统执行 resize2fs

18. Linux快捷替换文件中的路径

在Linux中,你可以使用sed命令来替换文件中的路径。sed是一个流编辑器,它可以对文本进行各种操作,包括替换。

下面是一个使用sed命令替换文件中路径的示例:

sed -i 's/旧路径/新路径/g' 文件名

解释一下这个命令:

  • sed:流编辑器的命令。

  • -i:表示直接修改文件内容,而不是输出到标准输出。

  • 's/旧路径/新路径/g':这是sed的替换命令,其中s表示替换,g表示全局替换(即一行中的所有匹配项都将被替换)。

  • 文件名:要替换路径的文件名。

请将"旧路径"替换为你要查找和替换的实际路径,"新路径"替换为你要替换成的新路径。

例如,如果你要将文件example.txt中的路径/home/user/old_folder替换为/home/user/new_folder,你可以运行以下命令:

sed -i 's:/home/user/old_folder:/home/user/new_folder:g' example.txt

注意,在路径中使用正斜杠(/)时,需要使用反斜杠(\)进行转义,以避免与sed的分隔符混淆。在上述示例中,我使用了冒号(:)作为分隔符,因为正斜杠在sed中具有特殊含义。

 19.compose语法关键字介绍

以chunfeng-river服务为例,本文只介绍一些关键性的语法指令,compose文件如下:

更多语法指令,可以参考官方文档:Compose file version 3 reference | Docker Docs

version: '3.5'     #compose文件的版本
​
services:     #定义服务
  chunfeng-river:      #服务名称,容器内部使用次出定义的服务名进行通信
    hostname: chunfeng-river   #主机名
    image: chunfeng-river:test1  #使用的镜像地址
    volumes:   #挂载的持久化卷
      - /var/run/docker.sock:/var/run/docker.sock
#      - /home/chunfeng/river/data/:/app/wwwroot/external
      - /home/chunfeng/river/data:/edoc2Docs
    labels:
      "type": "1"
    environment:    #容器配置的环境变量
      - LOGGER_ISDEBUG=false
      - LOGGER_MINCALLTIMESPAN=1000
      - PUBLISH_EXTERNAL_ADDRESS=http://localhost/
      - PRODUCTION=chunfeng
      - NUMS=25
      - ThreadCheck=true
    env_file:      #环境变量文件
      ./envfile.env
    networks:      #使用的网络
      - chunfeng
    stop_signal: SIGKILL   #容器的停止信号,SIGKILL信号其动作是立即结束指定进程
    healthcheck:   #健康检查
      test: /bin/bash /opt/edoc2_check.sh    #健康检查执行的命令
      interval: 15s     #15s执行一次
      timeout: 10s      #执行超时为10s
      retries: 3        # 失败时尝试执行的次数
    deploy:
      placement:
        constraints:
          - node.labels.nodetype == InDrive    #运行的标签限制,只有节点标签满足,才在节点运行
      mode: global     #运行的模式,global模式会在每个满足节点标签的节点上运行一个服务
      endpoint_mode: dnsrr    #部署的服务有多个时候,采用dns轮询的方式提供服务
      restart_policy:         #重启策略,当容器失败时,进行重启
        condition: on-failure
      resources:              #容器的资源限制
        limits:
          cpus: '8'           #限制只允许使用8个cpu
          memory: 16G         #限制只允许使用16G内存
    logging:                  #日志驱动,使用json格式的日志,输出至控制台
      driver: "json-file"     #日志驱动,默认为json
      options:
        max-size: "2000k"     #日志大约2m会进行切片
        max-file: "10"        #日志切片会保留十个
​
​
networks:   #定义容器的网络
  chunfeng:    #网络名
    external: true    #使用外置扩展网络
    name: river   #外置网络名

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值