【docker】docker compose进阶

news2024/9/20 6:20:18

docker compose

    • docker compose简介
    • docker compose yaml格式
    • 1、docker-compose部署tomcat
    • 2、docker-compose部署mysql
    • 3、docekr-compose部署lnmp
      • 项目需求
      • 准备依赖文件、配置nginx
      • 配置mysql
      • 配置php
      • 编写docker-compose.yml
      • 配置mysql
    • 4、容器部署registry,进行容器上传下载试验
      • 下载镜像
      • 在 daemon.json 文件中添加私有镜像仓库的地址并重启
      • 创建registry容器并开放端口
      • 给镜像打标签后上传到私有仓库
      • 验证:从私有仓库下载镜像

docker compose简介

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。它使用YAML文件来配置应用程序的服务、网络和卷,并使用单个命令即可启动、停止和管理应用程序。通过使用Docker Compose,开发人员可以轻松地在多个容器之间建立连接、定义关系和扩展应用程序。

Docker Compose的主要特性包括:

  1. 定义服务:使用YAML文件定义应用程序的各个服务,包括镜像、容器参数、环境变量等。

  2. 管理多容器:通过单个命令即可启动、停止、重启和删除多个容器,而不需要逐个处理。

  3. 连接容器:可以通过环境变量和链接来轻松地在多个容器之间建立连接和通信。

  4. 管理网络和卷:可以定义网络和卷,以便在容器之间共享数据和资源。

  5. 扩展应用程序:可以使用多个容器来扩展应用程序,以实现负载均衡和高可用性。

总之,Docker Compose是一个简单而强大的工具,可以帮助开发人员轻松地管理和运行多容器Docker应用程序。

docker compose yaml格式

Docker Compose 是一种用于定义和运行多个容器的工具。它使用 YAML 文件来配置应用程序的服务、网络和卷等方面。

以下是 Docker Compose 文件的基本格式:

version: '3'  # 指定 Compose 文件的版本

services:  # 定义各个服务的配置
  service1:  # 服务1的名称
    image: image1:tag  # Docker 镜像的名称和版本
    ports:
      - host_port:container_port  # 映射容器的端口到主机的端口
    volumes:
      - host_path:container_path  # 挂载主机的路径到容器的路径
    environment:  # 设置容器的环境变量
      - key=value

  service2:  # 服务2的名称
    build:  # 构建 Docker 镜像
      context: path_to_context  # 上下文路径,Dockerfile 所在的目录
      dockerfile: Dockerfile_name  # Dockerfile 的名称
    depends_on:
      - service1  # 依赖于服务1

networks:  # 定义网络配置
  network1:  # 网络1的名称
    driver: bridge  # 网络驱动

volumes:  # 定义卷配置
  volume1:  # 卷1的名称
    driver: local  # 卷的驱动

上述示例中,services 部分定义了两个服务,分别为 service1service2。每个服务都可以指定镜像、端口映射、卷挂载、环境变量和容器之间的依赖关系等配置。

networks 部分定义了网络配置,可以设置网络的驱动类型。

volumes 部分定义了卷配置,可以设置卷的驱动类型。

Compose 文件中的其他配置项包括 version(Compose 文件的版本)和 build(构建 Docker 镜像时的配置)等。

通过编写 Docker Compose 文件,可以定义和管理多个容器之间的关系和配置,方便地进行容器化应用程序的部署和管理。

1、docker-compose部署tomcat

文件目录:
在这里插入图片描述

cd /opt/homework/tomcat
wget https://mirrors.huaweicloud.com/apache/tomcat/tomcat-8/v8.5.99/bin/apache-tomcat-8.5.99.tar.gz

tdc.yaml

version: '3'
services:
  tomcat0815:
    container_name: tomcat0815
    hostname: tomcat0815
    build:
      context: ./tomcat
      dockerfile: Dockerfile
    ports:
      - 8444:8080
    volumes:
      - ./webapps:/usr/local/tomcat/webapps
    networks:
      tdc:
        ipv4_address: 172.80.0.2
networks:
  tdc:
    driver: bridge
    ipam:
      config:
        - subnet: 172.80.0.0/16

Dockerfile

FROM centos:7

RUN sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g" /etc/yum.repos.d/CentOS-*

RUN yum clean all && yum makecache && yum install -y wget rpm
RUN wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm -O /opt/jdk-8u131-linux-x64.rpm

RUN rpm -ivh /opt/jdk-8u131-linux-x64.rpm
ADD apache-tomcat-8.5.99.tar.gz /opt/javaweb/ 
RUN mkdir -p /usr/local/tomcat/
RUN mv /opt/javaweb/apache-tomcat-8.5.99 /usr/local/tomcat/

RUN chmod +x /usr/local/tomcat/apache-tomcat-8.5.99/bin/catalina.sh
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-8.5.99/
#  设置启动命令
ENTRYPOINT   [ "/usr/local/tomcat/apache-tomcat-8.5.99/bin/catalina.sh", "run"] 

# 暴露 HTTP 端口
EXPOSE 8080

docker-compose -f ./tdc.yaml up -d  

在这里插入图片描述

2、docker-compose部署mysql

version: '3'

services:
  mysqldb:
    image: mysql:5.7
    container_name: db
    hostname: mysql57
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - ./data:/var/lib/mysql
    ports:
      - 33062:3306
    restart: always
    networks:
      mdc:
        ipv4_address: 172.36.0.2

networks:
  mdc:
    driver: bridge
    ipam:
      config:
        - subnet: 172.36.0.0/16

docker-compose -f ./mdc.yaml up -d   

在这里插入图片描述

3、docekr-compose部署lnmp

项目需求

(1)使用Docker构建LNMP环境并运行Wordpress网站平台。

(2)为了方便运维和统一管理使用进行docker-compose编排

(3)将所有容器进行快照,然后将Docker镜像打包成tar包备份到本地。

(4)把docker-compose.yml 下载到本地

准备依赖文件、配置nginx

#创建项目目录 compose_nginx; 
mkdir /opt/compose_nginx/
cd /opt/compose_nginx
mkdir nginx mysql php wwwroot

#上传wordpress软件包
cd /opt/compose_nginx/wwwroot/
ls wordpress-4.9.4-zh_CN.tar.gz 
tar xf wordpress-4.9.4-zh_CN.tar.gz 

#上传nginx软件包
cd /opt/compose_nginx/nginx/
ls nginx-1.12.0.tar.gz  
nginx-1.12.0.tar.gz 
cd /opt/compose_nginx/nginx/
vim Dockerfile
#编写nginx的Dockerfile文件
FROM centos:7
MAINTAINER this is nginx image <zs>
RUN sed -i -e "s|mirrorlist=http://mirror.centos.org|mirrorlist=http://mirrors.aliyun.com|g" /etc/yum.repos.d/CentOS-*
RUN sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g" /etc/yum.repos.d/CentOS-*
RUN yum clean all
RUN yum makecache
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make && useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.0.tar.gz /usr/local/src/
WORKDIR /usr/local/src/nginx-1.12.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make -j2 && make install
ENV PATH /usr/local/nginx/sbin:$PATH
ADD nginx.conf /usr/local/nginx/conf/
#ADD wordpress-4.9.4-zh_CN.tar.gz /usr/local/nginx/html/
RUN chmod 777 -R /usr/local/nginx/html/
EXPOSE 80
EXPOSE 443
ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ]
vim nginx.conf

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        charset utf-8;
        location / {
            root   html;
            index  index.html index.php;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            root           html;
            #此地址是php端地址
            fastcgi_pass   172.18.0.30:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

配置mysql

cd /opt/compose_nginx/mysql/
vim Dockerfile
FROM centos:7
LABEL maintainer="this is mysql image xcz"
RUN sed -i -e "s|mirrorlist=http://mirror.centos.org|mirrorlist=http://mirrors.aliyun.com|g" /etc/yum.repos.d/CentOS-*
RUN sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g" /etc/yum.repos.d/CentOS-*
RUN yum clean all
RUN yum makecache
RUN yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make
ADD mysql-boost-5.7.20.tar.gz /usr/local/src/
WORKDIR /usr/local/src/mysql-5.7.20/
RUN cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1 && make -j3 && make install
ADD my.cnf /etc/
ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
RUN useradd -M -s /sbin/nologin  mysql && chown mysql:mysql /etc/my.cnf && chown -R mysql:mysql /usr/local/mysql/ && /usr/local/mysql/bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data && cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
EXPOSE 3306
CMD ["/usr/local/mysql/bin/mysqld"]

my.cnf


[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

[mysql]
port = 3306
socket = /usr/local/mysql/mysql.sock
auto-rehash

[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

配置php

cd /opt/compose_nginx/php/
cd /opt/compose_nginx/php/

vim Dockerfile 

FROM centos:7
LABEL maintainer=' this is php image <xcz>'
RUN sed -i -e "s|mirrorlist=http://mirror.centos.org|mirrorlist=http://mirrors.aliyun.com|g" /etc/yum.repos.d/CentOS-*
RUN sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g" /etc/yum.repos.d/CentOS-*
RUN yum clean all
RUN yum makecache
RUN yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel \
gcc gcc-c++ make pcre-devel && useradd -M -s /sbin/nologin nginx
ADD php-7.1.10.tar.bz2 /usr/local/src/
WORKDIR /usr/local/src/php-7.1.10
RUN ./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip && make -j2 && make install
ENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATH
ADD php.ini     /usr/local/php/lib/
ADD php-fpm.conf /usr/local/php/etc/
ADD www.conf /usr/local/php/etc/php-fpm.d/
EXPOSE 9000
ENTRYPOINT [ "/usr/local/php/sbin/php-fpm", "-F" ]

准备php-fpm.conf php.ini、www.conf 配置文件

vim php.ini
#该配置文件模板位于安装目录的 php-7.1.10/php.ini-development 位置
#939行,取消注释,修改
date.timezone = Asia/Shanghai
#1170行,修改
mysqli.default_socket = /usr/local/mysql/mysql.sock

vim php-fpm.conf
#该配置文件位于 /usr/local/php/etc/php-fpm.conf.default
#17行,删除注释符号“;”
pid = run/php-fpm.pid

vim www.conf
#该配置文件位于 cd /usr/local/php/etc/php-fpm.d/
user = nginx
group = nginx
#36行,修改监听IP和端口为容器IP:9000端口
listen = 172.18.0.30:9000`

编写docker-compose.yml

version: '2.1'
services:
  nginx:
    hostname: nginx
    build:
      context: ./nginx
      dockerfile: Dockerfile
    container_name: nginx
    ports:
      - 80:80
      - 443:443
    networks:
      lnmp:
        ipv4_address: 172.18.0.10
    volumes:
      - ./wwwroot/:/usr/local/nginx/html
  mysql:
    hostname: mysql
    build:
      context: ./mysql
      dockerfile: Dockerfile
    container_name: mysql
    ports:
      - 3306:3306
    networks:
      lnmp:
        ipv4_address: 172.18.0.20
    volumes:
      - /usr/local/mysql
  php:
    hostname: php
    build:
      context: ./php
      dockerfile: Dockerfile
    container_name: php
    ports:
      - 9000:9000
    networks:
      lnmp:
        ipv4_address: 172.18.0.30
    volumes_from:
      - nginx
      - mysql
    depends_on:
      - nginx
      - mysql
    links:
      - nginx
      - mysql
networks:
  lnmp:
    driver: bridge
    ipam:
      config:
        - subnet: 172.18.0.0/16
docker-compose -f docker-compose.yml up -d

在这里插入图片描述

配置mysql


docker exec -it mysql /bin/bash

mysql -uroot -p
create database wordpress;
grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
flush privileges;

在这里插入图片描述
在这里插入图片描述

4、容器部署registry,进行容器上传下载试验

下载镜像

docker pull registry

在 daemon.json 文件中添加私有镜像仓库的地址并重启

vim /etc/docker/daemon.json
{ 
  "insecure-registries": ["192.168.99.130:5000"], #添加此段,“,”不可少,ip是本机IP地址
  "registry-mirrors": ["https://cnqz5vcz.mirror.aliyuncs.com"]
}

systemctl daemon-reload
systemctl restart docker.service

在这里插入图片描述

创建registry容器并开放端口

docker create -it registry /bin/bash
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry

在这里插入图片描述

给镜像打标签后上传到私有仓库

#打标签
docker tag redis:latest 192.168.99.130:5000/redis
#上传
docker push 192.168.99.130:5000/redis

在这里插入图片描述

验证:从私有仓库下载镜像

客户端:192.168.99.132

vim /etc/docker/daemon.json
{ 
  "insecure-registries": ["192.168.99.130:5000"], #添加此段,“,”不可少,ip是本机IP地址
  }

在这里插入图片描述
在这里插入图片描述

docker pull 192.168.99.130:5000/redis
#查看镜像
docker images 

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2052194.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot+公寓信息服务小程序—计算机毕业设计源码无偿分享需要私信20481

摘要 本论文主要论述了如何使用springboot开发一个公寓信息服务小程序&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述公寓信息服务小程序的当前背景以及系统开发的目的&#xff0c;后续…

STL介绍以及string类

什么是STL 是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。 STL的六大组件 为什么要学习string类 C语言中的字符串 C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&am…

3-4 RGB LED(智能应用篇)

3-4 RGB LED&#xff08;智能应用篇&#xff09; 3-4 RGB LEDRGB-LED及电路示例程序效果演示 3-4 RGB LED Led的灯珠和灯带&#xff0c;相当于点和线&#xff08;可以画出丰富否画面&#xff09; 主要介绍led灯珠 RGB-LED及电路 RGB-LED可以发出红、绿、蓝色的光芒&#xff0…

Flutter 09 Future 和 Stream

一、Future 和 Stream 是处理异步操作的两个重要概念&#xff1a; Future&#xff1a; Future 用于表示一个延迟操作的值或错误&#xff0c;即异步操作的结果。通过 Future&#xff0c;可以在异步操作完成后获取其结果。可以使用 async 和 await 关键字来处理 Future&#xf…

Cisco Catalyst 8000v Edge Software, IOS XE Release IOSXE-17.14.01a ED

Cisco Catalyst 8000v Edge Software, IOS XE Release IOSXE-17.14.01a ED Cisco Catalyst 8000V 边缘软件 - 虚拟路由器 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-catalyst-8000v/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&…

Redis笔记-分布式存储方案中哨兵模式配置

以前在系统分析师中学习到了Redis哨兵模式&#xff0c;只知道其中基本概念&#xff0c;但不知道怎么去配这个&#xff0c;今天看到某项目&#xff0c;特意记录下其配置过程。哨兵模式比主从模式&#xff0c;更具有容错性。 Redis分布式存储方案 分布式存储方案 核心特点 主从…

centos 7.9 迁移到 openEuler22.03-LTS-SP3

openEuler移植案例 | 移植操作指南 | openEuler社区官网 cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) 需要两台机器&#xff0c; 不通过原因 在待升级节点检查是否有安装x2openEuler-core时, 发现已经安装了,不能作为升级节点。该节点为&#xff1a; 解…

开发日记:Object-c 中的 NSString 和 NSMutableString的常用方法

今天讲不可变数组 NSArray 可变数组 NSMutableArray。话不多说&#xff0c;直接上干货。 oc中的数组 可变数组 NSMutableArray使用初始化方法创建可变数组使用便利构造器创建可变数组可变数组追加元素可变数组追加一个不可变数组可变数组删除一个元素可变数组删除指定下标的元素…

IPD推行成功的核心要素(十七)矩阵型组织架构设计实现多组织协同以便快速抓取市场机会

随着企业规模不断增长&#xff0c;业务越来越复杂&#xff0c;组织架构对企业高效运作的影响也越来越大。加之企业所处的市场环境瞬息万变&#xff0c;机会稍纵即逝。传统金字塔型的组织架构&#xff0c;完全无法满足这样快速灵活的要求。而IPD体系设计了产品线&#xff08;IPM…

decoy靶机复现

靶机设置 设置网卡ens33 设置靶机为NAT模式 靶机IP发现 nmap 192.168.112.0/24 靶机ip为192.168.112.149 端口扫描 nmap 192.168.112.149 -p- -sV -O -Pn 访问浏览器 默认是8080&#xff0c;需要更改为80端口 下载好之后发现解压需要密码 破解密码 将该安装包放到kali中…

配置Prettier+Vscode setting提高前端开发效率

前言 大家好&#xff0c;上一篇一文读懂 系列的文章中我们介绍了前端的代码格式化校验工具ESLient。代码格式是进行自动校验了&#xff0c;但你还要一个个的微调&#xff0c;很麻烦不是吗&#xff1f; 本文介绍和ESLient配合使用的Prettier实现编译器自动将代码格式化。 同时也…

Nat Methods编委:积极探索AI与生物学交叉的高质量基于人工智能方法的论文发表|顶刊速递·24-08-19

小罗碎碎念 今天分享的这篇文献&#xff08;特刊&#xff09;发表于《Nat Methods》&#xff0c;目前IF36.1。 分享这篇文献是临时做的决定&#xff0c;因为在朋友圈看到有关这篇特刊的介绍&#xff0c;对标题很感兴趣&#xff0c;所以我立刻找到对应的文章来详细分析一下。 在…

Leetcode JAVA刷刷站(35)搜索插入位置

一、题目概述 二、思路方向 为了实现这一功能&#xff0c;我们可以使用二分查找的变种来找到目标值或确定其应插入的位置。在二分查找过程中&#xff0c;我们不仅检查中间元素是否等于目标值&#xff0c;还根据比较结果更新搜索的上下界。如果目标值大于中间元素&#xff0c;则…

一文带你从源码中学习那些实用的位运算技巧

写在文章开头 众所周知位运算执行效率高于常规运算,通过不同的位运算搭配可以让我们写出简洁高效的代码表达式,所以本文从各大开源项目的源码中介绍一下各类运算技巧及其使用场景。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是…

【体检】程序人生之健康检查,全身体检与预防疫苗,五大传染病普筛,基因检测等

程序员养生指南之 【体检】程序人生之健康检查&#xff0c;全身体检项目分类&#xff0c;五大传染病普筛&#xff0c;基因检测等 文章目录 一、全身体检与预防疫苗&#xff08;年检&#xff09;1、实验室检测&#xff1a;生化全套检查2、医技检查&#xff1a;辅助诊疗科室3、科…

【Python实现禁用任务管理器】

效果展示&#xff1a; 代码及解析&#xff1a; 提示&#xff1a;使用pyinstaller打包可以避免弹窗&#xff0c;食用更佳哦 提示(2)&#xff1a;运行后要等待一段时间再关机哦 禁用代码&#xff1a; 要禁止任务管理器关闭 Python 程序&#xff0c;可以通过修改注册表来实现。以…

【OpenCV_python】凸包检测 轮廓特征 直方图均衡化 模板匹配 霍夫变换

凸包特征检测 凸包就是图像的最小外接多边形&#xff0c;通过图像的轮廓点&#xff0c;找到距离最远的两个点的直线&#xff0c;根据直线找到距离最远的下一个点&#xff0c;直到所有的点被包围在多边形内 读取图像二值化找图像的轮廓获取凸包点的坐标绘制凸包点 convexHull 获…

bilibiliDown-纯净B站视频解析提取工具

软件简介 bilibiliDown是一款简洁好用的B站视频下载工具&#xff0c;支持由UP主上传的单集&#xff0c;多集以及相关封面&#xff0c;弹幕&#xff0c;字幕&#xff0c;音乐&#xff0c;刮削等等&#xff0c;支持任意粒度批量组合&#xff0c;登录后支持到1080P&#xff0c;大…

Git Merge 实例教学:同步代码库与处理分支冲突的最佳实践

文章目录 前言一、git merge是什么&#xff1f;二、git merge基本用法1. 合并两个分支2. 合并时创建合并提交3. 快进合并&#xff08;Fast-forward Merge&#xff09;4. --abort参数5. --continue参数6. -X theirs参数 三、实际例子1. 更新仓库2. 将origin/main分支合并到当前分…

podman安装过程记录

最近注意到podman兼容docker镜像包&#xff0c;于是好奇心的驱动下&#xff0c;研究了一下 本来以为podman的desktop跟docker一样&#xff0c;最后发现podman桌面版是轻量级的&#xff0c;还需要安装podman的服务&#xff08;当然&#xff0c;是支持直接通过它的桌面版来安装其…