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

docker镜像、容器、仓库介绍

docker

    • docker介绍
    • docker镜像命令
    • docker容器命令
    • docker仓库

docker介绍

官网

Docker 是一种开源的容器化平台,用于开发、部署和运行应用。它通过将应用程序及其依赖项打包到称为“容器”的单一包中,使得应用能够在任何环境下运行,不受底层系统的限制。Docker提供了一种标准化的软件交付方式,使得应用在开发、测试和生产环境中的运行更加一致。

Docker的核心概念

  • 镜像(Image):Docker镜像是容器的“模板”,包含了操作系统、应用程序以及相关依赖库。镜像是只读的,用于创建和运行容器。

  • 容器(Container):容器是镜像的一个运行实例,是一个隔离的进程环境,拥有独立的文件系统、网络等资源。一个镜像可以创建多个容器,每个容器之间是相互隔离的。

  • Dockerfile:Dockerfile是一个文本文件,定义了如何构建Docker镜像。它包含了一系列指令,用于描述镜像的构建步骤,例如选择基础镜像、安装依赖、复制文件、设置环境变量等。

  • 仓库(Registry):Docker仓库用于存储和分发Docker镜像,类似于代码的版本控制系统。Docker Hub是官方的公共镜像仓库,用户也可以搭建私有仓库。

Docker的底层架构与组件

Docker的底层架构主要由以下几个核心组件组成:

Docker Daemon(守护进程):

  • Docker Daemon是Docker的后台进程,负责管理容器的生命周期、构建和运行镜像。它接受客户端(CLI)命令并执行相应操作。

Docker CLI:

  • Docker CLI是Docker的命令行界面,用于与Docker Daemon进行通信,执行容器的启动、停止、删除等操作。

Containerd:

  • Containerd是一个容器管理的守护进程,负责管理容器的生命周期。它是Docker的一部分,但也可以作为独立组件使用,直接与OCI(Open Container Initiative)兼容。

RunC:

  • RunC是一个轻量级的、符合OCI标准的容器运行时工具。RunC的核心作用是创建和启动容器,通过Namespace、Cgroups等
  • Linux内核特性实现容器的隔离与资源控制。

Libnetwork:

  • Libnetwork是Docker的网络管理库,用于处理容器的网络连接,包括创建虚拟网络、网络隔离等操作。
    图像和存储管理:

Docker支持多种存储驱动(如OverlayFS、AUFS、Device Mapper等),用于管理镜像的分层存储结构。每一层只保存了增量数据,这种分层存储可以提高资源利用率并减少冗余。

Docker 使用客户端-服务器架构。Docker 客户端与 Docker 守护程序通信,后者负责构建、运行和分发 Docker 容器的繁重工作。Docker 客户端和守护程序可以在同一系统上运行,或者您可以将 Docker 客户端连接到远程 Docker 守护程序。Docker 客户端和守护程序使用 REST API、通过 UNIX 套接字或网络接口进行通信。另一个 Docker 客户端是 Docker Compose,它允许使用由一组容器组成的应用程序。

在这里插入图片描述

Docker的底层原理

Docker的底层原理主要依赖于Linux内核的几个关键技术,包括Namespace、Cgroups、Union File System等,这些技术实现了容器的隔离、资源管理和文件系统支持。

  1. Namespace(命名空间)
    Namespace是Linux内核提供的资源隔离技术,它允许系统资源(如进程ID、网络、文件系统等)被隔离到独立的命名空间中。不同命名空间内的资源是相互独立的,从而使得一个容器中的进程无法影响另一个容器中的进程。Docker主要使用了以下几种Namespace:

    • PID Namespace:隔离进程ID,使得每个容器中的进程彼此独立。
      NET Namespace:隔离网络资源,如网卡、IP地址、端口等,使得容器拥有独立的网络栈。
      IPC Namespace:隔离进程间通信(如信号、消息队列等),确保容器间通信安全。
      Mount Namespace:隔离文件系统挂载点,每个容器可以拥有独立的文件系统视图。
      UTS Namespace:隔离主机名和域名,使得容器可以设置自己的主机名。
  2. Cgroups(Control Groups)
    Cgroups是Linux内核提供的资源管理功能,可以限制和隔离进程组使用的资源(如CPU、内存、磁盘I/O等)。在Docker中,Cgroups用于限制每个容器的资源使用,确保系统稳定。比如,可以设置一个容器的CPU最大使用率不超过50%、内存不超过1GB等,从而避免单个容器过度占用资源影响其他容器。

  3. Union File System(联合文件系统)
    Docker的镜像由多层只读层叠加而成,这种分层结构依赖于Union File System的支持。常见的联合文件系统有AUFS、OverlayFS等。每层镜像都只记录了文件系统的增量,只有在容器运行时创建一个可写层。分层文件系统使得镜像可以高效共享、重复利用,提高了存储空间的利用率。

  4. 容器镜像的分层结构与存储管理
    Docker镜像的分层结构使得不同镜像可以共享相同的底层资源。在镜像构建时,Docker会为每个操作创建一个新的层,这些层按顺序叠加构成完整的镜像。在容器启动时,Docker会在镜像的顶部添加一个可写层,即“容器层”,以便容器可以对文件系统进行读写操作。

Docker的运行流程

构建镜像:根据Dockerfile构建镜像,镜像分为多个只读层,每层对应Dockerfile的一条指令。

启动容器:从镜像创建容器实例,并为容器创建一个可写层。

隔离资源:启动容器时,Docker通过Namespace隔离容器的进程、网络、文件系统等资源。

分配资源:Docker通过Cgroups为容器分配资源,并监控其资源使用情况。

容器网络:Docker使用Libnetwork为容器创建网络连接,实现容器间通信和网络隔离。

文件系统管理:Docker使用联合文件系统挂载镜像层,并为容器提供可写层。

Docker的优势与应用场景

一致性:Docker打包了应用和依赖,确保在不同环境中运行的一致性,解决了“运行在我电脑上”的问题。

资源高效:相比虚拟机,容器不需要完整的操作系统和硬件模拟,启动速度快,资源占用少。

弹性伸缩:通过编排工具(如Kubernetes)管理容器集群,容器化应用易于实现水平扩展和自动恢复。

快速交付:Docker简化了软件的开发、测试、部署流程,使得开发、测试、运维团队之间的协作更加高效。

容器与虚拟机 (VM)

简单来说,虚拟机是一个完整的操作系统,拥有自己的内核、硬件驱动程序、程序和应用程序。启动虚拟机只是为了隔离单个应用程序,这会带来很大的开销。

容器只是一个独立的进程,其中包含运行所需的所有文件。如果运行多个容器,它们都共享同一个内核,这样您就可以在更少的基础设施上运行更多的应用程序。

结合使用虚拟机和容器

容器和虚拟机经常一起使用。例如,在云环境中,配置的机器通常是虚拟机。但是,具有容器运行时的虚拟机可以运行多个容器化应用程序,而不是配置一台机器来运行一个应用程序,从而提高资源利用率并降低成本。

容器和镜像的关系

容器是一个独立的进程,它从哪里获取文件和配置?如何共享这些环境?这就是容器镜像发挥作用的地方!容器镜像是一个标准化包,其中包含运行容器所需的所有文件、二进制文件、库和配置。

对于 PostgreSQL映像,该映像将打包数据库二进制文件、配置文件和其他依赖项。对于 Python Web 应用,它将包括 Python 运行时、应用代码及其所有依赖项。

镜像有两个重要原则:

  • 镜像是不可变的。镜像一旦创建,就无法修改。只能创建新镜像或在其上添加更改。

  • 容器镜像由层组成。每层代表一组添加、删除或修改文件的文件系统更改。

可以理解为镜像就是一个流水线工厂,容器就是最终加工出来的产品

docker镜像命令

安装docker:Ubuntu2410使用阿里源安装最新docker

apt -y install apt-transport-https ca-certificates curl software-properties-commoncurl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"apt-get -y install docker-ce
systemctl enable --now docker
root@huhy:~# docker version
Client: Docker Engine - CommunityVersion:           27.3.1API version:       1.47Go version:        go1.22.7Git commit:        ce12230Built:             Fri Sep 20 11:40:42 2024OS/Arch:           linux/amd64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          27.3.1API version:      1.47 (minimum version 1.24)Go version:       go1.22.7Git commit:       41ca978Built:            Fri Sep 20 11:40:42 2024OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.7.22GitCommit:        7f7fdf5fed64eb6a7caf99b3e12efcf9d60e311crunc:Version:          1.1.14GitCommit:        v1.1.14-0-g2c9f560docker-init:Version:          0.19.0GitCommit:        de40ad0

Docker 使用 Linux 内核的 iptables 机制来处理容器的网络通信和地址转发。因此需要启用参数

加载 br_netfilter 内核模块。这是一个负责管理桥接网络过滤的模块

modprobe br_netfilter
vi /etc/sysctl.conf
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
root@huhy:~# sysctl -p
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
  • 搜索镜像:docker search
    可以指定全称,不然就返回包含名称的所有镜像
root@huhy:~# docker search centos
NAME                           DESCRIPTION                                     STARS     OFFICIAL
centos                         DEPRECATED; The official build of CentOS.       7756      [OK]
centos/postgresql-10-centos7   PostgreSQL is an advanced Object-Relational …   20
centos/httpd-24-centos8                                                        3
corpusops/centos               centos corpusops baseimage                      0
centos/systemd                 systemd enabled base container.                 115
centos/redis-5-centos8                                                         0
centos/postgresql-96-centos7   PostgreSQL is an advanced Object-Relational …   45
centos/mariadb-102-centos7     MariaDB 10.2 SQL database server                6
centos/postgresql-10-centos8                                                   0
centos/mysql-80-centos8                                                        0
centos/mongodb-36-centos7      MongoDB NoSQL database server                   12
centos/nginx-112-centos7       Platform for running nginx 1.12 or building …   16
centos/mariadb-103-centos8                                                     2
centos/postgresql-12-centos8                                                   0
centos/mysql-57-centos7        MySQL 5.7 SQL database server                   95
centos/mariadb-101-centos7     MariaDB 10.1 SQL database server                13
centos/mysql-56-centos7        MySQL 5.6 SQL database server                   23
centos/httpd-24-centos7        Platform for running Apache httpd 2.4 or bui…   46
centos/redis-32-centos7        Redis in-memory data structure store, used a…   6
centos/redis-5-centos7         Redis in-memory data structure store, used a…   0
centos/ruby-25-centos7         Platform for building and running Ruby 2.5 a…   3
centos/postgresql-12-centos7   PostgreSQL is an advanced Object-Relational …   5
centos/php-56-centos7          Platform for building and running PHP 5.6 ap…   34
centos/postgresql-94-centos7   PostgreSQL is an advanced Object-Relational …   16
centos/nginx-18-centos7        Platform for running nginx 1.8 or building n…   14
  • 拉取镜像:docker pull
    需要指定版本,否则默认拉取最新版本的镜像
root@huhy:~# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
root@huhy:~#
  • 查看镜像:docker images
    获取镜像的名称大小,版本、id等信息
root@huhy:~# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   3 years ago   231MB
  • 删除镜像:docker rmi
    通过名称或者id都可以删除:需要注意的是,删除的镜像是不能有已经启动过的容器实例,不然会失败
root@huhy:~# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   3 years ago   231MB
root@huhy:~# docker rmi centos
Untagged: centos:latest
Untagged: centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Deleted: sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6
Deleted: sha256:74ddd0ec08fa43d09f32636ba91a0a3053b02cb4627c35051aff89f853606b59
  • 批量删除镜像
    通过组合命令使用,先执行查看镜像,然后删除查看到的镜像
root@huhy:~# docker rmi $(docker images)
Untagged: redis:latest
Untagged: redis@sha256:a06cea905344470eb49c972f3d030e22f28f632c1b4f43bbe4a26a4329dd6be5
Deleted: sha256:f02a7f56692880b88d5fabe631da5547ae1d8c30d7050c3d004347a9fa5e5a3c
Deleted: sha256:685583ae93732862468e2a7edba217ed8165dfc730c363c30bb9405c4c81aac5
Deleted: sha256:fd8efb49fd2763acfd6a07881e62713a246858a4cdfe4b9a31c9cb3336a9c710
Deleted: sha256:3895fdb072213028eed326869c37d52d4b4003c6b0d0b4e6faf57bf18e5d439a
Deleted: sha256:7c9bf6b85511bdf143188f915e200ff94b46dc75d6d218845a939bfa8701f1e2
Deleted: sha256:ba40754911b8313098bdacb32d5044d6105f72a3b9cfe4a9ea16b8f05861614d
Deleted: sha256:93588577b39273261aea628c7f6aab541a86ff37e1f2674ee421300a2ff34d02
Deleted: sha256:1408254577b9d64420dcf7d4ba1b0df9a3ddd7a29d3d4736ad2ff4672baf4a8a
Untagged: centos:latest
Untagged: centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Deleted: sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6
Deleted: sha256:74ddd0ec08fa43d09f32636ba91a0a3053b02cb4627c35051aff89f853606b59
Untagged: nginx:latest
Untagged: nginx@sha256:28402db69fec7c17e179ea87882667f1e054391138f77ffaf0c3eb388efc3ffb
Deleted: sha256:3b25b682ea82b2db3cc4fd48db818be788ee3f902ac7378090cf2624ec2442df
Deleted: sha256:3e8a4396bcdb62aeb916ec1e4cf64500038080839f049c498c256742dd842334
Deleted: sha256:8dd6a711fbdd252eba01f96630aa132c4b4e96961f09010fbbdb11869865f994
Deleted: sha256:9368c52198f80c9fb87fc3eaf7770afb7abb3bfd4120a8defd8a8f1a68ff375d
Deleted: sha256:46834c975bf2d807053675d76098806736ee94604c650aac5fe8b5172ab008c8
Deleted: sha256:6e433330e8b1553bee0637fac3b1e66c994bb2c0cab7b2372d2584171d1c93d8
Deleted: sha256:fbc611fa4a4aff4cf0bfd963c49e2c416ff8047c9f84c2dc9328d3b833f1118d
Deleted: sha256:98b5f35ea9d3eca6ed1881b5fe5d1e02024e1450822879e4c13bb48c9386d0ad
  • 清理镜像:docker image prune
    默认情况下,docker image prune 只会删除 未被任何容器使用 的镜像。
    使用 -a 标志,删除所有没有标签的镜像。
root@huhy:/opt# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
tmt          v1        f77539e7e45f   2 weeks ago   467MB
tomcat       latest    f77539e7e45f   2 weeks ago   467MB
nginx        latest    3b25b682ea82   7 weeks ago   192MB
root@huhy:/opt# docker image prune -a
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: tmt:v1
untagged: tomcat:latest
deleted: sha256:f77539e7e45f7c6337c681589fe18ee6407640e4066c450fcfb8c6a4ba5575b2
untagged: nginx:latest
deleted: sha256:3b25b682ea82b2db3cc4fd48db818be788ee3f902ac7378090cf2624ec2442df
deleted: sha256:3e8a4396bcdb62aeb916ec1e4cf64500038080839f049c498c256742dd842334
deleted: sha256:8dd6a711fbdd252eba01f96630aa132c4b4e96961f09010fbbdb11869865f994
deleted: sha256:9368c52198f80c9fb87fc3eaf7770afb7abb3bfd4120a8defd8a8f1a68ff375d
deleted: sha256:46834c975bf2d807053675d76098806736ee94604c650aac5fe8b5172ab008c8
deleted: sha256:6e433330e8b1553bee0637fac3b1e66c994bb2c0cab7b2372d2584171d1c93d8
deleted: sha256:fbc611fa4a4aff4cf0bfd963c49e2c416ff8047c9f84c2dc9328d3b833f1118d
deleted: sha256:98b5f35ea9d3eca6ed1881b5fe5d1e02024e1450822879e4c13bb48c9386d0adTotal reclaimed space: 191.7MB
root@huhy:/opt# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
root@huhy:/opt#
  • 保存镜像:docker save
    o, --output:指定保存的 tar 文件的名称或路径。默认为标准输出

保存单个镜像

root@huhy:/opt# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
tomcat       latest    f77539e7e45f   2 weeks ago   467MB
nginx        latest    3b25b682ea82   7 weeks ago   192MB
root@huhy:/opt# docker save -o nginx.tar nginx:latest
root@huhy:/opt# ls
nginx.tar
root@huhy:/opt#

保存两个镜像

root@huhy:/opt# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
tomcat       latest    f77539e7e45f   2 weeks ago   467MB
nginx        latest    3b25b682ea82   7 weeks ago   192MB
root@huhy:/opt# docker save -o image.tar nginx:latest tomcat:latest
root@huhy:/opt# ls
image.tar

批量保存所有镜像到一个压缩包里面

#!/bin/bash# 设置输出文件名称
output_file="all_docker_images.tar"# 获取所有镜像名称和标签
images=$(docker images --format "{{.Repository}}:{{.Tag}}")# 打包所有镜像
echo "正在将以下镜像保存到 $output_file:"
echo "$images"
docker save -o "$output_file" $imagesecho "所有镜像已保存到 $output_file"
root@huhy:/opt# vi images.sh
iroot@huhy:/opt# bash images.sh
正在将以下镜像保存到 all_docker_images.tar:
tomcat:latest
nginx:latest
所有镜像已保存到 all_docker_images.tar
root@huhy:/opt# ls
all_docker_images.tar  images.sh
root@huhy:/opt#
  • 导入镜像:docker load
    -i, --input:指定要加载的 tar 文件路径
root@huhy:/opt# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
root@huhy:/opt# docker load -i all_docker_images.tar
Loaded image: tomcat:latest
98b5f35ea9d3: Loading layer [==================================================>]  77.83MB/77.83MB
b33db0c3c3a8: Loading layer [==================================================>]  117.9MB/117.9MB
63d7ce983cd5: Loading layer [==================================================>]  3.584kB/3.584kB
296af1bd2844: Loading layer [==================================================>]  4.608kB/4.608kB
8ce189049cb5: Loading layer [==================================================>]   2.56kB/2.56kB
6ac729401225: Loading layer [==================================================>]   5.12kB/5.12kB
e4e9e9ad93c2: Loading layer [==================================================>]  7.168kB/7.168kB
Loaded image: nginx:latest
root@huhy:/opt# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
tomcat       latest    f77539e7e45f   2 weeks ago   467MB
nginx        latest    3b25b682ea82   7 weeks ago   192MB
root@huhy:/opt#
  • 添加标签:dockr tag
root@huhy:/opt# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
tomcat       latest    f77539e7e45f   2 weeks ago   467MB
nginx        latest    3b25b682ea82   7 weeks ago   192MB
root@huhy:/opt# docker tag tomcat:latest tmt:v1
root@huhy:/opt# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
tmt          v1        f77539e7e45f   2 weeks ago   467MB
tomcat       latest    f77539e7e45f   2 weeks ago   467MB
nginx        latest    3b25b682ea82   7 weeks ago   192MB

docker容器命令

  • 启动容器:docker run
    • -d:表示后台运行容器(即“分离模式”),这样容器启动后会在后台运行,不会阻塞当前终端
    • –name:指定容器的名称,方便后续管理。否则系统会随机生成一个名称
    • -p:端口映射,将主机的端口映射到容器的端口,格式是 主机端口:容器端口(如果p是大写,就是随机分配端口)
    • -v:数据卷挂载,用于将主机的文件夹挂载到容器中,这在 Web 服务中很常见,可以将 Nginx 配置文件或网页文件挂载到容器。格式是 主机路径:容器路径
    • –rm:容器停止后自动删除容器。适用于临时测试环境
    • -e:设置环境变量,用于在启动时配置容器内部的环境
    • -it:用于交互模式启动容器,加上 -t 表示为容器分配一个伪终端
    • –network:设置容器的网络模式。Docker 提供了多种网络模式,如 bridge、host、none 等,或使用自定义网络。
    • -h, --hostname:设置容器的主机名。
    • –memory:限制容器的内存使用。可以指定具体的内存大小。
    • –cpu-shares:为容器设置 CPU 共享权重,用于调度时分配 CPU 资源
    • –restart:设置容器的自动重启策略。常见的选项有:
      no:不会自动重启容器(默认行为)。
      always:容器停止时总是重启。
      unless-stopped:除非容器被手动停止,否则总是重启。
      on-failure:仅在容器非正常退出(退出码非 0)时重启

启动一个nginx容器

root@huhy:~# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    3b25b682ea82   5 weeks ago   192MB
root@huhy:~# docker run -itd --name nginx -p 8081:80 3b25b682ea82
6eefa8c342cfef7142fb000172727b757f1686a4d0bcc835df19e310d3d18ef9
root@huhy:~# ss -tlun | grep 80
tcp   LISTEN 0      4096         0.0.0.0:8081       0.0.0.0:*
tcp   LISTEN 0      4096            [::]:8081          [::]:*
  • 查看容器:docker ps
    • -a:列出所有容器(包括已停止的容器)
    • -q:仅显示容器 ID,不显示其他详细信息
root@huhy:~# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                     NAMES
6eefa8c342cf   3b25b682ea82   "/docker-entrypoint.…"   4 minutes ago   Up 4 minutes   0.0.0.0:8081->80/tcp, [::]:8081->80/tcp   nginx
root@huhy:~# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                     NAMES
6eefa8c342cf   3b25b682ea82   "/docker-entrypoint.…"   4 minutes ago   Up 4 minutes   0.0.0.0:8081->80/tcp, [::]:8081->80/tcp   nginx
root@huhy:~# docker ps -q
6eefa8c342cf
  • 查看容器详细信息:docker inspect
root@huhy:~# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                     NAMES
6eefa8c342cf   3b25b682ea82   "/docker-entrypoint.…"   7 minutes ago   Up 7 minutes   0.0.0.0:8081->80/tcp, [::]:8081->80/tcp   nginx
root@huhy:~# docker inspect nginx
[{"Id": "6eefa8c342cfef7142fb000172727b757f1686a4d0bcc835df19e310d3d18ef9","Created": "2024-11-11T02:35:58.084126042Z","Path": "/docker-entrypoint.sh","Args": ["nginx","-g","daemon off;"
............
  • 查看容器日志:docker logs
    • -f:跟随实时输出日志
    • –tail:查看日志的最后几行
root@huhy:~# docker logs -f nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2024/11/11 02:35:58 [notice] 1#1: using the "epoll" event method
2024/11/11 02:35:58 [notice] 1#1: nginx/1.27.2
2024/11/11 02:35:58 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14)
2024/11/11 02:35:58 [notice] 1#1: OS: Linux 6.8.0-45-generic
2024/11/11 02:35:58 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2024/11/11 02:35:58 [notice] 1#1: start worker processes
  • 进入容器:docker exec
    • -i(–interactive):开启交互模式,使得容器中的命令可以接收标准输入。适用于需要交互输入的命令
    • -t(–tty):分配一个伪终端(TTY)。通常与 -i 一起使用来打开一个交互式的终端,比如 bash 或 sh
    • -e(–env):设置环境变量,为执行的命令添加指定的环境变量。可以添加多个 -e 参数
    • –privileged:允许容器有更多的权限,适用于执行一些需要高权限的操作
    • –workdir:指定容器中执行命令的工作目录(工作路径),相当于切换到指定目录再执行命令
root@huhy:~# docker exec -it nginx bash
root@6eefa8c342cf:/# ls
bin   dev                  docker-entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint.d  etc                   lib   media  opt  root  sbin  sys  usr
root@6eefa8c342cf:/#
  • 停止容器:docker stop
root@huhy:~# docker stop nginx
nginx
root@huhy:~# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
root@huhy:~# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                      PORTS     NAMES
6eefa8c342cf   3b25b682ea82   "/docker-entrypoint.…"   39 minutes ago   Exited (0) 10 seconds ago             nginx
root@huhy:~#
  • 强制停止:docker kill
root@huhy:/opt# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
df30594547df   nginx     "/docker-entrypoint.…"   5 seconds ago   Up 5 seconds   80/tcp    optimistic_mirzakhani
root@huhy:/opt# docker kill df30594547df
df30594547df
root@huhy:/opt# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
root@huhy:/opt#
  • 启动容器:docker start
root@huhy:~# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
root@huhy:~# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                      PORTS     NAMES
6eefa8c342cf   3b25b682ea82   "/docker-entrypoint.…"   39 minutes ago   Exited (0) 10 seconds ago             nginx
root@huhy:~# docker start nginx
nginx
root@huhy:~# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS         PORTS                                     NAMES
6eefa8c342cf   3b25b682ea82   "/docker-entrypoint.…"   40 minutes ago   Up 3 seconds   0.0.0.0:8081->80/tcp, [::]:8081->80/tcp   nginx
root@huhy:~#
  • 暂停容器中所有进程:docker pause
root@huhy:~# docker pause nginx
nginx
root@huhy:~# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                   PORTS                                     NAMES
6eefa8c342cf   3b25b682ea82   "/docker-entrypoint.…"   41 minutes ago   Up 57 seconds (Paused)   0.0.0.0:8081->80/tcp, [::]:8081->80/tcp   nginx
root@huhy:~#
  • 恢复被暂停的容器:docker unpause
root@huhy:~# docker unpause nginx
nginx
root@huhy:~# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                     NAMES
6eefa8c342cf   3b25b682ea82   "/docker-entrypoint.…"   51 minutes ago   Up 10 minutes   0.0.0.0:8081->80/tcp, [::]:8081->80/tcp   nginx
root@huhy:~#
  • 查看 Docker 的实时事件流:docker events
    • –since:指定从特定时间开始获取事件。时间格式可以是时间戳或格式化的日期字符串。
      例如,查看最近 1 小时的事件:
docker events --since 1h
  • –until:指定事件结束时间,和 --since 搭配使用。
    例如,查看指定时间段内的事件:
docker events --since "2023-10-01T00:00:00" --until "2023-10-01T12:00:00"
  • –filter:用于过滤特定的事件,docker events 支持多种过滤器,最常用的包括:
    event:按事件类型过滤,例如 start、stop、die 等。
    container:指定某个容器的事件。
    image:指定某个镜像的事件。
    label:按标签过滤事件。
    例如,查看特定容器的事件:
docker events --filter container=my-container
  • 容器导出为镜像:docker commit
    此命令只会记录文件系统和容器状态,不会记录启动参数和卷挂载等等,可搭配inspect使用,达到容器迁移的效果
root@huhy:/opt# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
9448eb29f64e   nginx     "/docker-entrypoint.…"   14 seconds ago   Up 13 seconds   80/tcp    elated_beaver
root@huhy:/opt# docker commit 9448eb29f64e new_nginx:v1
sha256:885f36e25bdfc0dcff244ab96c0c6f4d4dd4f2e11fa7b1e38e2014e66070edac
root@huhy:/opt# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
new_nginx    v1        885f36e25bdf   5 seconds ago   192MB
nginx        latest    60c8a892f36f   7 weeks ago     192MB
  • 容器导出为快照:docker export
    Docker 支持将容器完整导出为文件快照,这个方式更适合迁移,可以间接保存所有数据
root@huhy:/opt# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
9448eb29f64e   nginx     "/docker-entrypoint.…"   6 minutes ago   Up 6 minutes   80/tcp    elated_beaver
root@huhy:/opt# docker export  -o nginx_test.tar 9448eb29f64e
root@huhy:/opt# cat nginx_test.tar | docker import - my_nginx_image:latest
sha256:6bf3501bd2b49601f158c5905d4eae05f135c19eb3a89fd9f201284a7153bf28
root@huhy:/opt#
root@huhy:/opt# docker images
REPOSITORY       TAG       IMAGE ID       CREATED          SIZE
my_nginx_image   latest    6bf3501bd2b4   17 seconds ago   190MB
new_nginx        v1        885f36e25bdf   8 minutes ago    192MB
nginx            latest    60c8a892f36f   7 weeks ago      192MB

使用 docker commit:

  • 在容器中做了修改(例如安装了软件、修改配置文件),希望将这些修改保存为镜像,供后续使用。
    快速创建一个基于现有容器的自定义镜像。
    希望能够在以后使用该镜像启动新容器,并保留容器的所有修改。

使用 docker export:

  • 需要导出容器的文件系统以便迁移到其他地方(例如,将容器的文件系统导出为 tar 包,并上传到另一个机器上)。
    只关心容器内的数据,不关心容器的配置。
    备份容器的文件系统内容,但不需要容器的运行时配置。

docker仓库

Docker仓库是用于存储和管理Docker镜像的地方,可以是公共的也可以是私有的。通过Docker仓库,开发者可以方便地上传、下载和共享Docker镜像。常见的Docker仓库包括Docker Hub、Harbor、 Google ContainerRegistry(GCR)、Amazon Elastic ContainerRegistry(ECR)和 Azure ContainerRegistry(ACR)。这些仓库支持镜像的版本控制存储、分发,通常还提供镜像扫描、加密、权限管理等安全功能

Harbor官网

配置最新harbor,安装要求:docker 20.10.10-ce+ and docker-compose 1.18.0+ .

在这里插入图片描述

tar -xf harbor-offline-installer-v2.11.2.tgz
root@huhy:~# cd harbor/
root@huhy:~/harbor# ls
common.sh  harbor.v2.11.2.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare

在 Docker 20.10 及更高版本中,Docker 引入了 docker compose 作为一个插件命令,逐渐取代了 docker-compose。这个命令作为 Docker CLI(命令行界面)的一部分,允许直接通过 docker 命令来管理 Docker Compose 功能,而不再需要单独安装docker-compose 工具

root@huhy:~/harbor# docker compose version
Docker Compose version v2.29.7

配置daemon

vi /etc/docker/daemon.json
{"registry-mirrors": ["https://o90diikg.mirror.aliyuncs.com"],"insecure-registries" : ["0.0.0.0/0"]
}
systemctl daemon-reload
systemctl restart docker

修改yml

mv harbor.yml.tmpl harbor.yml

yml文件官网配置详解

vi harbor.yml

修改为本机IP,并注释https

hostname: 192.168.200.160# http related config
http:# port for http, default is 80. If https enabled, this port will redirect to https portport: 80# https related config
#https:# https port for harbor, default is 443# port: 443# The path of cert and key files for nginx#certificate: /your/certificate/path#private_key: /your/private/key/path# enable strong ssl ciphers (default: false)# strong_ssl_ciphers: false

使用默认启动

./install.sh

启动harbor时可带一些可选参数

--with-trivy             # 启用 Trivy 漏洞扫描
--with-clair             # 启用 Clair 漏洞扫描
--with-notary            # 启用镜像签名与验证(Notary)
--with-chartmuseum       # 启用 Helm Chart 仓库
--with-registry          # 启用 Docker 镜像仓库
--with-database          # 启用数据库服务(通常是 PostgreSQL)
--with-redis             # 启用 Redis 服务
--with-log               # 启用日志记录
--with-https             # 启用 HTTPS 配置
--with-clair-scanner     # 启用 Clair 扫描器
--with-clair-metadata    # 启用 Clair 元数据
--with-jobservice        # 启用任务服务
--with-core              # 启用 Harbor 核心服务
--with-portal            # 启用 Harbor Web UI

界面访问:IP(admin/Harbor12345)

在这里插入图片描述

在这里插入图片描述

界面创建公开项目

在这里插入图片描述

查看推送命令

在这里插入图片描述

推送镜像:打标签

root@huhy:~# docker images
REPOSITORY                      TAG       IMAGE ID       CREATED       SIZE
goharbor/harbor-exporter        v2.11.2   520de0cd30c7   10 days ago   108MB
goharbor/redis-photon           v2.11.2   bb0d92ddf3ec   10 days ago   165MB
goharbor/trivy-adapter-photon   v2.11.2   0962772f9c8f   10 days ago   347MB
goharbor/harbor-registryctl     v2.11.2   075c10d45191   10 days ago   162MB
goharbor/registry-photon        v2.11.2   1365718c5208   10 days ago   84.8MB
goharbor/nginx-photon           v2.11.2   2949037133e7   10 days ago   154MB
goharbor/harbor-log             v2.11.2   9ae20475f5ca   10 days ago   163MB
goharbor/harbor-jobservice      v2.11.2   8dbbe22ef281   10 days ago   159MB
goharbor/harbor-core            v2.11.2   6c2be6bdb874   10 days ago   185MB
goharbor/harbor-portal          v2.11.2   a3440cd04321   10 days ago   162MB
goharbor/harbor-db              v2.11.2   a5fc5485967b   10 days ago   271MB
goharbor/prepare                v2.11.2   74c41ed4e2a9   10 days ago   205MB
root@huhy:~# docker tag goharbor/prepare:v2.11.2 192.168.200.160/test/goharbor/prepare:test

登录harbor

root@huhy:~# docker login -u "admin" -p "Harbor12345" "192.168.200.160"
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credential-storesLogin Succeeded
root@huhy:~#
root@huhy:~# docker push 192.168.200.160/test/goharbor/prepare:test
The push refers to repository [192.168.200.160/test/goharbor/prepare]
c6844997789a: Pushed
ee793768fa5f: Pushed
659dc40ce3b7: Pushed
029c27b3f91b: Pushed
7db7ce7738f9: Pushed
771d6693db72: Pushed
9c15ef707b0c: Pushed
e8d8565c9983: Pushed
faebe453cc4b: Pushed
7e3e085aad00: Pushed
test: digest: sha256:3761801ca8f76e7df2ab1c4f7c35913cf0540a3d34510cb54274939568bcc346 size: 2413
root@huhy:~#

界面查看镜像已经推送成功

在这里插入图片描述

相关文章:

docker镜像、容器、仓库介绍

docker docker介绍docker镜像命令docker容器命令docker仓库 docker介绍 官网 Docker 是一种开源的容器化平台,用于开发、部署和运行应用。它通过将应用程序及其依赖项打包到称为“容器”的单一包中,使得应用能够在任何环境下运行,不受底层系…...

写个添加球队和展示球队的功能--laravel与inertia

先展示下最终效果,如下是展示球队的界面 如下是添加球队的界面 界面样式没怎么调整,不要在意这些细节。先说说操作流程 首先需要登录,没注册就注册一个账号。登录界面就不展示了。然后选中”NbaBasketballTeams“这个选项,就进入了展示球队的界面。然后点击…...

自制Windows系统(十)

上图 (真的不是Windows破解版) 开源地址:仿Windows...

World of Warcraft /script SetRaidTarget(“target“, n, ““) n=8,7,6,5,4,3,2,1,0

魔兽世界执行当前目标标记方法 /script SetRaidTarget("target", n, "") n8,7,6,5,4,3,2,1,0 解析这个lua脚本 D:\Battle.net\World of Warcraft\_classic_\Interface\AddOns\wMarker wMarker.lua /script SetRaidTarget("target", 8, &quo…...

Rust中Tracing 应用指南

欢迎来到这篇全面的Rust跟踪入门指南。Rust 的tracing是一个用于应用程序级别的诊断和调试的库。它提供了一种结构化的、异步感知的方式来记录日志和跟踪事件。与传统的日志记录相比,tracing能够更好地处理复杂的异步系统和分布式系统中的事件跟踪,帮助开…...

海外媒体发稿:根据您的要求编写二十个文案标题方法-华媒舍

本文旨在科普解读并描述标题中所包含的二十个爆款文案,为读者提供更深入的了解和知识。通过对每个标题进行拆解描述,我们将深入探讨各个文案标题的背后含义和吸引人之处。 1、"10个你不可忽视的秘密技巧,提升你的生活品质!&q…...

gitlab:使用脚本批量下载项目,实现全项目检索

目的 当需要知道gitlab中所有项目是否存在某段代码时,gitlab免费版只提供了当个项目内的检索,当项目过多时一个个查太过繁琐。下面通过 GitLab API 将指定 Group 下的所有项目克隆到本地。此脚本会自动获取项目列表并逐一克隆它们,再在本地进…...

macos 使用 nvm 管理 node 并自定义安装目录

系统环境:MacOS Version 参考文章: Github 地址:https://github.com/nvm-sh/nvm 安装的方式是很简单的,直接执行下面的命令即可: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bas…...

网络编程第一课

0voice第一课 https://github.com/0voice 今日学习:网络通信IO 网络通信的核心是通过系统提供的socket套接字实现的。socket和c语言中文件操作的本质类似,在c语言中,通过fopen、fclose、fread、fwrite实现了对文件的操作,socket…...

玩转 Burp Suite (1)

内容预览 ≧∀≦ゞ 玩转 Burp Suite (1)声明Burp Suite 简介Dashboard(仪表盘)1. 默认任务管理2. 暂停任务3. 新建扫描任务4. 使用总结 Target(目标)1. SIte Map (站点地图)2. Scope(范围&#…...

【linux】(16)date命令

基本用法 date [OPTION]... [FORMAT]显示当前日期和时间 默认情况下,date 命令显示当前的日期和时间: date输出示例: Sun Jun 2 10:29:08 UTC 2024自定义日期和时间格式 可以使用 FORMAT 选项自定义输出格式。常用的格式选项包括&#…...

算法笔记:并查集

一、什么是并查集 并查集的逻辑结构是一个包含N个元素的集合,如图: 我们将各个元素划分为若干个互不相交的子集,如图: 二、并查集的基本操作 (一)初始化 初始化可以先将每个子集指向自己 //初始化int []…...

密码系统设计实验3-2

文章目录 《密码系统设计》实验实验项目实验三 密码模块实现4-6 学时实践要求(30 分) 《密码系统设计》实验 实验项目 实验序号实验名称实验学时数实验目的实验内容实验类型学生学习预期成果实验三密码模块实现6基于商用密码标准的密码模块的实现实现简…...

Spring Boot 与 Spring Cloud Alibaba 版本兼容对照

版本选择要点 Spring Boot 3.x 与 Spring Cloud Alibaba 2022.0.x Spring Boot 3.x 基于 Jakarta EE,javax.* 更换为 jakarta.*。 需要使用 Spring Cloud 2022.0.x 和 Spring Cloud Alibaba 2022.0.x。 Alibaba 2022.0.x 对 Spring Boot 3.x 的支持在其发行说明中…...

SVD 奇异值分解

SVD 是一种矩阵分解和降维的算法,通过分解矩阵找到奇异值,奇异值越大代表特征越重要。公式如下 A U Σ V T A U \Sigma V^T AUΣVT U : 左矩阵 ( m \times m ) Σ \Sigma Σ: 对角奇异值矩阵V:右矩阵( n \times n ) Sklearn 实现 S…...

C++设计模式-享元模式

动机(Motivation) 在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行时代价——主要指内存需求方面的代价。如何在避免大量细粒度对象问题的同时,让外部客户程序仍然能够透明地使用面向对象的方式来进行操作…...

AI加持,华为全屋智能品牌升级为“鸿蒙智家”

1.传统智能家居的困境:从便利到繁琐 近年来,智能家居因其便捷性和科技感受到消费者的青睐。然而,随着用户需求的多样化,传统智能家居的弊端逐渐显现: 设备连接复杂,品牌间兼容性不足,用户不得不…...

洛谷刷题之p1631

序列合并 题目入口 题目描述 有两个长度为 N N N 的单调不降序列 A , B A,B A,B,在 A , B A,B A,B 中各取一个数相加可以得到 N 2 N^2 N2 个和,求这 N 2 N^2 N2 个和中最小的 N N N 个。 输入格式 第一行一个正整数 N N N; 第二…...

uniapp前端开发,基于vue3,element plus组件库,以及axios通讯

简介 UniApp 是一个基于 Vue.js 的跨平台开发框架,旨在通过一次开发、编译后运行在多个平台上,如 iOS、Android、H5、以及小程序(微信小程序、支付宝小程序、百度小程序等)等。UniApp 为开发者提供了统一的开发体验,使…...

在Unity中实现物体动画的完整流程

在Unity中,动画是游戏开发中不可或缺的一部分。无论是2D还是3D游戏,动画都能为游戏增添生动的视觉效果。本文将详细介绍如何在Unity中为物体添加动画,包括资源的准备、播放组件的添加、动画控制器的创建以及动画片段的制作与调度。 1. 准备动…...

【云计算网络安全】解析 Amazon 安全服务:构建纵深防御设计最佳实践

文章目录 一、前言二、什么是“纵深安全防御”?三、为什么有必要采用纵深安全防御策略?四、以亚马逊云科技为案例了解纵深安全防御策略设计4.1 原始设计缺少安全策略4.2 外界围栏构建安全边界4.3 访问层安全设计4.4 实例层安全设计4.5 数据层安全设计4.6…...

【Andriod ADB基本命令总结】

笔者工作当中遇到安卓机器的数据访问和上传,特来简单总结一下常用命令。 1、ADB命令简介与安装 简介: ADB (Android Debug Bridge) 是一个强大的命令行工具,用于与 Android 设备进行交互,常用于开发、调试、测试以及设备管理等操作。它是 Android 开发工具包(SDK)的一部…...

ChatGPT如何辅助academic writing?

今天想和大家分享一篇来自《Nature》杂志的文章《Three ways ChatGPT helps me in my academic writing》,如果您的日常涉及到学术论文的写作(writing)、编辑(editing)或者审稿( peer review)&a…...

Day 27 贪心算法 part01

贪心算法其实就是没有什么规律可言,所以大家了解贪心算法 就了解它没有规律的本质就够了。 不用花心思去研究其规律, 没有思路就立刻看题解。 基本贪心的题目 有两个极端,要不就是特简单,要不就是死活想不出来。 学完贪心之后再去看动态规划,就会了解贪心和动规的区别。…...

使用Python实现目标追踪算法

引言 目标追踪是计算机视觉领域的一个重要任务,广泛应用于视频监控、自动驾驶、机器人导航、运动分析等多个领域。目标追踪的目标是在连续的视频帧中定位和跟踪感兴趣的物体。本文将详细介绍如何使用Python和OpenCV实现一个基本的目标追踪算法,并通过一…...

某科技研发公司培训开发体系设计项目成功案例纪实

某科技研发公司培训开发体系设计项目成功案例纪实 ——建立分层分类的培训体系,加强培训跟踪考核,促进培训成果实现 【客户行业】科技研发行业 【问题类型】培训开发体系 【客户背景】 某智能科技研发公司是一家专注于智能科技、计算机软件技术开发与…...

如何通过高效的缓存策略无缝加速湖仓查询

引言 本文将探讨如何利用开源项目 StarRocks 的缓存策略来加速湖仓查询,为企业提供更快速、更灵活的数据分析能力。作为 StarRocks 社区的主要贡献者和商业化公司,镜舟科技深度参与 StarRocks 项目开发,也为企业着手构建湖仓架构提供更多参考…...

Linux V4L2框架介绍

linux V4L2框架介绍 V4L2框架介绍 V4L2,全称Video for Linux 2,是Linux操作系统下用于视频数据采集设备的驱动框。它提供了一种标准化的方式使用户空间程序能够与视频设备进行通信和交互。通过V4L2接口,用户可以方便地实现视频图像数据的采…...

【前端】JavaScript 中 arguments、类数组与数组的深入解析

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯什么是 arguments 对象2.1 arguments 的定义2.2 arguments 的特性2.3 使用场景 💯深入了解 arguments 的结构3.1 arguments 的内部结构arguments 的关键属性…...

Android 布局菜单或按钮图标或Menu/Item设置可见和不可见

设置可见和不可见 即 设置 显示和隐藏;是双向设置;什么情况显示,什么情况隐藏分判断的条件 它不同于删除和屏蔽,删除和屏蔽,覆盖是单向的,不可逆转的。它间接等于单向的隐藏!!&…...

网站优化月总结/就业seo好还是sem

一 PON基础知识 1.1 PON技术概念 PON(Passive Optical Network)即无源光网络,一种基于点到多点(P2MP)拓朴的技术。“无源”指ODN(光分配网络)不含有任何电子器件及电子电源,ODN全部由光分路器Splitter等无源器件组成,不需要贵重的有源电子设…...

广州 网站建设 行价/合肥网络公司

1、在slave1:3306从库进行备份innobackupex --defaults-file/mysql/mysql57/my.cnf --userroot --passwordxxx --socket/mysql/mysql3306/tmp/mysql.sock --slave-info /mysql/innobak2、在从库slave2上新启3307实例进行恢复并与线上master进行同步1)slave2&…...

重庆大渡口营销型网站建设公司推荐/怎么自己做个网站

PMP(Project Management Professional)是项目管理专业人士资格认证,是由美国国际认证协会(PMI)发起的严格评估项目管理人员知识技能是否具有高品质的资格认证考试。目前已在全球190多个国家和地区得到了认可&#xff0…...

做灯具外贸哪个网站好做/海外独立站

源码获取:俺的博客首页 "资源" 里下载! 项目介绍 酒店管理系统共分为三个角色,客房经理、前台管理员、客户,各个角色的权限各不相同; 客房经理功能包括:登录、注册、前台用户管理、客房管理、优…...

坂田网站建设/全网关键词搜索工具

最近鹏哥在总结目前市面流行的开源软件,努力发现有价值的项目分享给大家。如果你看到下边的官网,是不是第一感觉是这绝对是一个商业软件的官网,鹏哥告诉你,你错了!这个就是今天鹏哥要推荐的项…...

.net怎么做网站/精准引流的网络推广

随机显示矩阵已经完成了,接下来就是怎么根据输入移动数字 1.首先需要一个issort函数,判断是否排序完成,如果否,则printf输入需要移动的数字,然后根据输入找到要移动的数字,找到下划线的位置,判断…...