最新资讯

  • docker——容器化部署

docker——容器化部署

2025-04-27 07:01:01 2 阅读

docker官网:https://hub.docker.com/

docker中文菜鸟教程:https://www.runoob.com/docker/docker-tutorial.html

1. Docker架构与容器化

docker的底层原理

  • Docker是基于Google公司推出的Golang语言开发而来,基于Linux内核的Cgroups、NameSpace,以及Union Fs等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。
  • 对进程进行封装隔离,属于操作系统层面的虚拟化技术。
  • 利用Docker可以实现开发,测试,生产环境的部署一致性,极大的减少运维成本。
    docker安装部署
    docker最核心的组件
  • image镜像,构建容器(我们讲应用程序运行所需的环境,打包为镜像文件)。
  • Container,容器(你的应用程序,就跑在容器中)
  • 镜像仓库(dockerhub)(保存镜像文件,提供上传下载镜像)作用好比github
  • Dockerfile,将你部署项目的操作,写成一个部署脚本,这就是dockerfile,且该脚本还能够构建出镜像文件

docker容器化技术



2. Linux环境安装docker

官网详细步骤:https://docs.docker.com/engine/install/centos/

# 移除旧版本docker
sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-engine

# 配置docker yum源。
sudo yum install -y yum-utils
sudo yum-config-manager 
--add-repo 
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


# 安装 最新 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动 docker (只是当前启动,关机重启后还是要重新启动)
sudo systemctl start docker

# 开机自启动docker; enable + start 二合一
systemctl enable docker --now

# 配置加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
		"https://dockerproxy.com",
 	    "https://hub-mirror.c.163.com",
  	    "https://mirror.baidubce.com",
   		"https://ccr.ccs.tencentyun.com",
		"https://3zdb8399.mirror.aliyuncs.com",
		"https://docker.m.daocloud.io",
		"https://docker.mirrors.sjtug.sjtu.edu.cn"
	]
}
EOF

# 重新加载重启
sudo systemctl daemon -reload
sudo systemctl restart docker

3. docker常见命令

演示:使用docker启动一个nginx,发布自己的页面,让其他人能访问。

镜像操作


容器操作

-d 后台启动
-P 是容器内部端口随机映射到主机的端口。
-p 是容器内部端口绑定到指定的主机端口。



保存镜像


发布镜像

完整命令如下:

#查看运行中的容器
docker ps
#查看所有容器
docker ps -a
#搜索镜像
docker search nginx
#下载镜像
docker pull nginx
#下载指定版本镜像
docker pull nginx:1.26.0
#查看所有镜像
docker images
#删除指定id的镜像
docker rmi e784f4560448


#运行一个新容器(前台启动,会阻塞控制台)
docker run nginx
#停止容器 容器名或者id
docker stop keen_blackwell
#启动容器
docker start 592f
#重启容器
docker restart 592f
#查看容器资源占用情况
docker stats 592f
#查看容器日志
docker logs 592f
#删除指定容器(运行中容器删除回报错,需要先停止)
docker rm 592f
#强制删除指定容器
docker rm -f 592f
# 后台启动容器
docker run -d --name mynginx nginx
# 后台启动并暴露端口(端口映射:外部主机端口-->内部容器端口)
docker run -d --name mynginx -p 80:80 nginx
# 进入容器内部
docker exec -it mynginx /bin/bash

# 提交容器变化打成一个新的镜像
docker commit -m "update index.html" mynginx mynginx:v1.0
# 保存镜像为指定文件
docker save -o mynginx.tar mynginx:v1.0
# 删除多个镜像
docker rmi bde7d154a67f 94543a6c1aef e784f4560448
# 加载镜像
docker load -i mynginx.tar 


# 登录 docker hub
docker login
# 重新给镜像打标签
docker tag mynginx:v1.0 codese/mynginx:v1.0
# 推送镜像
docker push codese/mynginx:v1.0

# 清理掉所有处于终止状态的容器。
docker container prune

注意:需要打开防火墙指定端口外部才能访问,linux命令如下:

#firewall 防火墙指令
打开端口: firewall-cmd --permanent --add-port=端口号/协议
关闭端口: firewall-cmd --permanent --remove-port=端口号/协议
重新载入,才能生效 : firewall-cmd --reload
查询端口是否开放: firewall-cmd --query-port=端口/协议
查询所有开放的端口:firewall-cmd --zone=public --list-ports

4. docker 存储

使用外部目录挂载、数据卷,保证容器出现问题或删除后,容器的数据不丢失。

#查看所有容器情况
docker ps -a
#查看所有容器ID
docker ps -aq
#批量删除所有容器
docker rm -f $(docker ps -aq)

两种方式,注意区分:
● 目录挂载: -v /app/nghtml:/usr/share/nginx/html
● 卷映射:-v ngconf:/etc/nginx

目录挂载







注意细节:
使用目录挂载时,默认以挂载目录文件为准。而容器一启动就会根据启动参数自动创建需要挂载的目录,而且初始是空的,这意味着如果是访问页面或者读取配置文件就会报错。(除非提前放置相应的文件)

卷映射



查看卷的相关操作

# 查看所有的卷
docker volume ls
# 创建一个卷
docker volume create haha
# 查看卷详情
docker volume inspect ngconf

5. docker网络

只要docker就有一个默认的网络网卡docker0,每启动一个容器都会加入到这个网络且分配iP。

#批量删除所有容器
docker rm -f $(docker ps -aq)
# 查看网卡信息
ip a
# 启动两个容器
docker run -d -p 88:80 --name app1 nginx
docker run -d -p 99:80 --name app2 nginx
# 查看容器详情
docker  inspect app1
docker  inspect app2
#进入容器内部访问
docker exec -it app1 /bin/bash
curl http://192.168.31.59:99 # 绕了一圈外面在进去,不可取
curl http://172.17.0.3:80 # 容器内部直接访问




优化—使用自定义网络

#批量删除所有容器
docker rm -f $(docker ps -aq)
# 自定义网络
docker network create mynet
# 查看
docker network ls
# 启动两个容器
docker run -d -p 88:80 --name app1 --network mynet  nginx
docker run -d -p 99:80 --name app2 --network mynet  nginx
# 查看容器详情
docker  inspect app1
docker  inspect app2

#进入容器内部访问
docker exec -it app1 /bin/bash
curl http://app2:80 # 内部访问,稳定域名


案例:redis主从同步集群

#自定义网络
docker network create mynet
#主节点
docker run -d -p 6379:6379 
-v /app/rd1:/bitnami/redis/data 
-e REDIS_REPLICATION_MODE=master 
-e REDIS_PASSWORD=123456 
--network mynet --name redis01 
bitnami/redis

#从节点
docker run -d -p 6380:6379 
-v /app/rd2:/bitnami/redis/data 
-e REDIS_REPLICATION_MODE=slave 
-e REDIS_MASTER_HOST=redis01 
-e REDIS_MASTER_PORT_NUMBER=6379 
-e REDIS_MASTER_PASSWORD=123456 
-e REDIS_PASSWORD=123456 
--network mynet --name redis02 
bitnami/redis


使用redis数据库连接工具测试


在主数据库添加、修改、删除数据,看从数据库的变化。

容器启动MySQL

docker run -d -p 3306:3306 
-v /app/myconf:/etc/mysql/conf.d 
-v /app/mydata:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=123456 
mysql:8.0.37-debian

6. Docker Compose (批量管理容器工具)


案例:

compose编写文档:https://docs.docker.com/reference/compose-file/

#批量删除原来容器
docker rm -f $(docker ps -aq)

#创建网络
docker network create blog

#启动mysql
docker run -d -p 3306:3306 
-e MYSQL_ROOT_PASSWORD=123456 
-e MYSQL_DATABASE=wordpress 
-v mysql-data:/var/lib/mysql 
-v /app/myconf:/etc/mysql/conf.d 
--restart always --name mysql 
--network blog 
mysql:8.0

#启动wordpress
docker run -d -p 8080:80 
-e WORDPRESS_DB_HOST=mysql 
-e WORDPRESS_DB_USER=root 
-e WORDPRESS_DB_PASSWORD=123456 
-e WORDPRESS_DB_NAME=wordpress 
-v wordpress:/var/www/html 
--restart always --name wordpress-app 
--network blog 
wordpress:latest

换成compose写法批量管理:

#批量删除原来容器
docker rm -f $(docker ps -aq)

#批量删除原来的卷
docker volume rm mysql-data wordpress

#删除原来的网络
docker network rm blog

# 编辑配置文件
vim compose.yaml

# 启动 
docker compose -f compose.yaml up -d

# 下线(卷和目录不会被移除)
docker compose -f compose.yaml down 

# 下线(删除镜像和目录)
docker compose -f compose.yaml down --rmi all -v

compose.yaml配置文件如下:

name: myblog
services:
  #第一个应用
  mysql:
    container_name: mysql #自定义容器名
    image: mysql:8.0 # 使用镜像及版本
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=wordpress
    volumes:
      - mysql-data:/var/lib/mysql
      - /app/myconf:/etc/mysql/conf.d
    restart: always #开机自启动
    networks:
      - blog

  #第二个应用
  wordpress:
    image: wordpress
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_USER: root 
      WORDPRESS_DB_PASSWORD: 123456 
      WORDPRESS_DB_NAME: wordpress 
    volumes:
      - wordpress:/var/www/html
    restart: always #开机自启动
    networks:
      - blog
    depends_on: #代表这个应用启动依赖mysql
      - mysql

#声明用到的卷
volumes:
  mysql-data:
  wordpress:

# 声明网络
networks:
  blog:



特性

● 增量更新
○ 修改 Docker Compose 文件。重新启动应用。只会触发修改项的重新启动。
● 数据不删
○ 默认就算down了容器,所有挂载的卷不会被移除。比较安全

7. Dockerfile 制作镜像

构建镜像
Dockerfile 是一个文本文件,包含了构建 Docker 镜像的所有指令。

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

通过定义一系列命令和参数,Dockerfile 指导 Docker 构建一个自定义的镜像。

我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

官方文档:https://docs.docker.com/reference/dockerfile/

vim Dockerfile:

FROM openjdk:17

LABEL author=codeSE

COPY app.jar /app.jar

EXPOSE 8080

ENTRYPOINT ["java","-jar","/app.jar"]

制作容器镜像并启动

# 构建
docker build -f Dockerfile -t myjavaapp:v1.0 .
# 查看镜像
dockers images
# 启动
docker run -d -p 8888:8080 myjavaapp:v1.0


制作其他语言镜像参考官方:https://docs.docker.com/language/

8. 镜像分层存储




使用docker ps -s 看一下区别

使用docker image history nginx和docker image histor mynginx:v1.0看一下区别

再使用docker inspect ngin和docker inspect mynginx:v1.0查看两个镜像区别,说明相同的部分就采用了共同的分层存储,不同的才分一层存储。

9. docker 常见的中间件安装

#批量删除原来容器
docker rm -f $(docker ps -aq)
#批量删除原来的卷
docker volume rm $(docker volume ls -q)
#删除原来的网络
docker network rm blog
# 关闭内存分页
sudo swapoff -a

# Edit the sysctl config file
sudo vi /etc/sysctl.conf

# Add a line to define the desired value
# or change the value if the key exists,
# and then save your changes.
vm.max_map_count=262144

# Reload the kernel parameters using sysctl
sudo sysctl -p

# Verify that the change was applied by checking the value
cat /proc/sys/vm/max_map_count

yaml

注意:
● 将下面文件中 kafka 的 192.168.31.59 改为你自己的服务器IP。
● 所有容器都做了时间同步,这样容器的时间和linux主机的时间就一致了
准备一个 compose.yaml文件,内容如下:

name: devsoft
services:
  redis:
    image: bitnami/redis:latest
    restart: always
    container_name: redis
    environment:
      - REDIS_PASSWORD=123456
    ports:
      - '6379:6379'
    volumes:
      - redis-data:/bitnami/redis/data
      - redis-conf:/opt/bitnami/redis/mounted-etc
      - /etc/localtime:/etc/localtime:ro

  mysql:
    image: mysql:8.0.31
    restart: always
    container_name: mysql
    environment:
      - MYSQL_ROOT_PASSWORD=123456
    ports:
      - '3306:3306'
      - '33060:33060'
    volumes:
      - mysql-conf:/etc/mysql/conf.d
      - mysql-data:/var/lib/mysql
      - /etc/localtime:/etc/localtime:ro

  rabbit:
    image: rabbitmq:3-management
    restart: always
    container_name: rabbitmq
    ports:
      - "5672:5672"
      - "15672:15672"
    environment:
      - RABBITMQ_DEFAULT_USER=rabbit
      - RABBITMQ_DEFAULT_PASS=rabbit
      - RABBITMQ_DEFAULT_VHOST=dev
    volumes:
      - rabbit-data:/var/lib/rabbitmq
      - rabbit-app:/etc/rabbitmq
      - /etc/localtime:/etc/localtime:ro
  opensearch-node1:
    image: opensearchproject/opensearch:2.13.0
    container_name: opensearch-node1
    environment:
      - cluster.name=opensearch-cluster # Name the cluster
      - node.name=opensearch-node1 # Name the node that will run in this container
      - discovery.seed_hosts=opensearch-node1,opensearch-node2 # Nodes to look for when discovering the cluster
      - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 # Nodes eligibile to serve as cluster manager
      - bootstrap.memory_lock=true # Disable JVM heap memory swapping
      - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # Set min and max JVM heap sizes to at least 50% of system RAM
      - "DISABLE_INSTALL_DEMO_CONFIG=true" # Prevents execution of bundled demo script which installs demo certificates and security configurations to OpenSearch
      - "DISABLE_SECURITY_PLUGIN=true" # Disables Security plugin
    ulimits:
      memlock:
        soft: -1 # Set memlock to unlimited (no soft or hard limit)
        hard: -1
      nofile:
        soft: 65536 # Maximum number of open files for the opensearch user - set to at least 65536
        hard: 65536
    volumes:
      - opensearch-data1:/usr/share/opensearch/data # Creates volume called opensearch-data1 and mounts it to the container
      - /etc/localtime:/etc/localtime:ro
    ports:
      - 9200:9200 # REST API
      - 9600:9600 # Performance Analyzer

  opensearch-node2:
    image: opensearchproject/opensearch:2.13.0
    container_name: opensearch-node2
    environment:
      - cluster.name=opensearch-cluster # Name the cluster
      - node.name=opensearch-node2 # Name the node that will run in this container
      - discovery.seed_hosts=opensearch-node1,opensearch-node2 # Nodes to look for when discovering the cluster
      - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 # Nodes eligibile to serve as cluster manager
      - bootstrap.memory_lock=true # Disable JVM heap memory swapping
      - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # Set min and max JVM heap sizes to at least 50% of system RAM
      - "DISABLE_INSTALL_DEMO_CONFIG=true" # Prevents execution of bundled demo script which installs demo certificates and security configurations to OpenSearch
      - "DISABLE_SECURITY_PLUGIN=true" # Disables Security plugin
    ulimits:
      memlock:
        soft: -1 # Set memlock to unlimited (no soft or hard limit)
        hard: -1
      nofile:
        soft: 65536 # Maximum number of open files for the opensearch user - set to at least 65536
        hard: 65536
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - opensearch-data2:/usr/share/opensearch/data # Creates volume called opensearch-data2 and mounts it to the container

  opensearch-dashboards:
    image: opensearchproject/opensearch-dashboards:2.13.0
    container_name: opensearch-dashboards
    ports:
      - 5601:5601 # Map host port 5601 to container port 5601
    expose:
      - "5601" # Expose port 5601 for web access to OpenSearch Dashboards
    environment:
      - 'OPENSEARCH_HOSTS=["http://opensearch-node1:9200","http://opensearch-node2:9200"]'
      - "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true" # disables security dashboards plugin in OpenSearch Dashboards
    volumes:
      - /etc/localtime:/etc/localtime:ro
  zookeeper:
    image: bitnami/zookeeper:3.9
    container_name: zookeeper
    restart: always
    ports:
      - "2181:2181"
    volumes:
      - "zookeeper_data:/bitnami"
      - /etc/localtime:/etc/localtime:ro
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes

  kafka:
    image: 'bitnami/kafka:3.4'
    container_name: kafka
    restart: always
    hostname: kafka
    ports:
      - '9092:9092'
      - '9094:9094'
    environment:
      - KAFKA_CFG_NODE_ID=0
      - KAFKA_CFG_PROCESS_ROLES=controller,broker
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://0.0.0.0:9094
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://192.168.31.59:9094
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - ALLOW_PLAINTEXT_LISTENER=yes
      - "KAFKA_HEAP_OPTS=-Xmx512m -Xms512m"
    volumes:
      - kafka-conf:/bitnami/kafka/config
      - kafka-data:/bitnami/kafka/data
      - /etc/localtime:/etc/localtime:ro
  kafka-ui:
    container_name: kafka-ui
    image: provectuslabs/kafka-ui:latest
    restart: always
    ports:
      - 8080:8080
    environment:
      DYNAMIC_CONFIG_ENABLED: true
      KAFKA_CLUSTERS_0_NAME: kafka-dev
      KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9092
    volumes:
      - kafkaui-app:/etc/kafkaui
      - /etc/localtime:/etc/localtime:ro

  nacos:
    image: nacos/nacos-server:v2.3.1
    container_name: nacos
    ports:
      - 8848:8848
      - 9848:9848
    environment:
      - PREFER_HOST_MODE=hostname
      - MODE=standalone
      - JVM_XMX=512m
      - JVM_XMS=512m
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=nacos-mysql
      - MYSQL_SERVICE_DB_NAME=nacos_devtest
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=nacos
      - MYSQL_SERVICE_PASSWORD=nacos
      - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
      - NACOS_AUTH_IDENTITY_KEY=2222
      - NACOS_AUTH_IDENTITY_VALUE=2xxx
      - NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789
      - NACOS_AUTH_ENABLE=true
    volumes:
      - /app/nacos/standalone-logs/:/home/nacos/logs
      - /etc/localtime:/etc/localtime:ro
    depends_on:
      nacos-mysql:
        condition: service_healthy
  nacos-mysql:
    container_name: nacos-mysql
    build:
      context: .
      dockerfile_inline: |
        FROM mysql:8.0.31
        ADD https://raw.githubusercontent.com/alibaba/nacos/2.3.2/distribution/conf/mysql-schema.sql /docker-entrypoint-initdb.d/nacos-mysql.sql
        RUN chown -R mysql:mysql /docker-entrypoint-initdb.d/nacos-mysql.sql
        EXPOSE 3306
        CMD ["mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
    image: nacos/mysql:8.0.30
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=nacos_devtest
      - MYSQL_USER=nacos
      - MYSQL_PASSWORD=nacos
      - LANG=C.UTF-8
    volumes:
      - nacos-mysqldata:/var/lib/mysql
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "13306:3306"
    healthcheck:
      test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
      interval: 5s
      timeout: 10s
      retries: 10
  prometheus:
    image: prom/prometheus:v2.52.0
    container_name: prometheus
    restart: always
    ports:
      - 9090:9090
    volumes:
      - prometheus-data:/prometheus
      - prometheus-conf:/etc/prometheus
      - /etc/localtime:/etc/localtime:ro

  grafana:
    image: grafana/grafana:10.4.2
    container_name: grafana
    restart: always
    ports:
      - 3000:3000
    volumes:
      - grafana-data:/var/lib/grafana
      - /etc/localtime:/etc/localtime:ro

volumes:
  redis-data:
  redis-conf:
  mysql-conf:
  mysql-data:
  rabbit-data:
  rabbit-app:
  opensearch-data1:
  opensearch-data2:
  nacos-mysqldata:
  zookeeper_data:
  kafka-conf:
  kafka-data:
  kafkaui-app:
  prometheus-data:
  prometheus-conf:
  grafana-data:

启动

# 在 compose.yaml 文件所在的目录下执行
docker compose up -d
# 等待启动所有容器

注意注意:


使用https://raw.githubusercontent.com/alibaba/nacos/2.3.2/distribution/conf/mysql-schema.sql这个地址会出现访问不了的情况,建议更换地址。或者直接去git仓库找到对应的nacos版本找到distribution/conf/mysql-schema.sql 直接下载在本地。通过本地的文件目录执行它。

访问测试

● zookeeper可视化工具下载:
○ https://github.com/vran-dev/PrettyZoo/releases/download/v2.1.1/prettyZoo-win.zip
● redis可视化工具下载:
○https://github.com/qishibo/AnotherRedisDesktopManager/releases/download/v1.6.4/Another-Redis-Desktop-Manager.1.6.4.exe

组件(容器名)介绍访问地址账号/密码特性
Redis(redis)k-v 库你的ip:6379单密码模式:123456已开启AOF
MySQL(mysql)数据库你的ip:3306root/123456默认utf8mb4字符集
Rabbit(rabbit)消息队列你的ip:15672rabbit/rabbit暴露5672和15672端口
OpenSearch(opensearch-node1/2)检索引擎你的ip:9200内存512mb;两个节点
opensearch-dashboardssearch可视化你的ip:5601
Zookeeper(zookeeper)分布式协调你的ip:2181允许匿名登录
kafka(kafka)消息队列你的ip:9092外部访问:9094占用内存512mb
kafka-ui(kafka-ui)kafka可视化你的ip:8080
nacos(nacos)注册/配置中心你的ip:8848nacos/nacos持久化数据到MySQL
nacos-mysql(nacos-mysql)nacos配套数据库你的ip:13306root/root
prometheus(prometheus)时序数据库你的ip:9090
grafana(grafana)你的ip:3000admin/admin






Docker 小结

  1. Docker Daemon
    安装使用Docker,得先运行DockerDaemon进程,用于管理docker,如:
  • 镜像 imagese
  • 容器 containerse
  • 网络 network。
  • 数据卷 Data Volumes
  1. Rest接口
    提供和Daemon交互的API接口

  2. Docker Client
    客户端使用REST API和Docker Daemon进行访问.

  3. Docker平台组成

  4. lmages
    镜像是一个只读模板,用于创建容器,也可以通过Dockerfile文本描述镜像的内。
    容镜像的概念类似于编程开发里面向对象的类,从一个基类开始(基础镜像Base lmage)构建容器的过程,就是运行镜像,生成容器实例。

Docker镜像的描述文件是Dockerfile,包含了如下的指令:
。FROM 定义基础镜像
。MAINTAINER作者
。RUN 运行Linux命令
。ADD 添加文件/目录
。ENV 环境变量
。CMD 运行进程

  1. Container
    容器是一个镜像的运行实例,镜像 >容器。

创建容器的过程:

  • 获取镜像,如 docker pull centos,从镜像仓库拉取
  • 使用镜像创建容器
  • 分配文件系统,挂载一个读写层,在读写层加载镜像
  • 分配网络/网桥接口,创建一个网络接口,让容器和宿主机通信
  • 容器获取IP地址
  • 执行容器命令,如/bin/bash
  • 反馈容器启动结果。.
  1. Registry
    Docker镜像需要进行管理,docker提供了Recistr仓库,其实它也是一个容器。可以用于可以基干该容器运行私有仓库。
    也可以使用Docker Hub互联网公有镜像仓库,
  2. 安装Docker
    提前准备好一个宿主机(vmware去创建一个linux机器,然后安装docker去使用)
  3. 安装环境初始化

本文地址:https://www.vps345.com/3008.html

搜索文章

Tags

PV计算 带宽计算 流量带宽 服务器带宽 上行带宽 上行速率 什么是上行带宽? CC攻击 攻击怎么办 流量攻击 DDOS攻击 服务器被攻击怎么办 源IP 服务器 linux 运维 游戏 云计算 javascript 前端 chrome edge llama 算法 opencv 自然语言处理 神经网络 语言模型 deepseek Ollama 模型联网 API CherryStudio RTSP xop RTP RTSPServer 推流 视频 进程 操作系统 进程控制 Ubuntu 科技 ai java 人工智能 个人开发 python MCP ubuntu 阿里云 网络 网络安全 网络协议 ssh 运维开发 分布式 云原生 Flask FastAPI Waitress Gunicorn uWSGI Uvicorn 宝塔面板访问不了 宝塔面板网站访问不了 宝塔面板怎么配置网站能访问 宝塔面板配置ip访问 宝塔面板配置域名访问教程 宝塔面板配置教程 rust http 开发语言 面试 性能优化 jdk intellij-idea 架构 fastapi mcp mcp-proxy mcp-inspector fastapi-mcp agent sse vue.js audio vue音乐播放器 vue播放音频文件 Audio音频播放器自定义样式 播放暂停进度条音量调节快进快退 自定义audio覆盖默认样式 tcp/ip ssl harmonyos 华为 typescript 计算机网络 数据库 centos oracle 关系型 安全 docker 容器 DeepSeek-R1 API接口 vscode cpu 内存 实时 使用 笔记 C 环境变量 进程地址空间 flutter Hyper-V WinRM TrustedHosts macos 向日葵 编辑器 ESP32 camera Arduino 电子信息 机器学习 ai小智 语音助手 ai小智配网 ai小智教程 智能硬件 esp32语音助手 diy语音助手 mount挂载磁盘 wrong fs type LVM挂载磁盘 Centos7.9 debian PVE github 创意 社区 大数据 爬虫 数据挖掘 网络用户购物行为分析可视化平台 大数据毕业设计 1024程序员节 c# 智能路由器 dell服务器 go 代理模式 Windsurf golang 后端 物联网 iot ESXi flask spring boot AI编程 AIGC android 鸿蒙 统信UOS 麒麟 bonding 链路聚合 ollama 大模型 mac EtherCAT转Modbus ECT转Modbus协议 EtherCAT转485网关 ECT转Modbus串口网关 EtherCAT转485协议 ECT转Modbus网关 pycharm ide Dify ffmpeg 音视频 c++ Dell R750XS mcu 信息与通信 udp unity 华为云 嵌入式硬件 单片机 温湿度数据上传到服务器 Arduino HTTP cuda cudnn anaconda websocket MacOS录屏软件 学习 sql KingBase uni-app 银河麒麟 kylin v10 麒麟 v10 php LDAP postman mock mock server 模拟服务器 mock服务器 Postman内置变量 Postman随机数据 pytorch mysql 自动化 windows 微服务 springcloud nginx dubbo GaN HEMT 氮化镓 单粒子烧毁 辐射损伤 辐照效应 嵌入式 linux驱动开发 arm开发 鸿蒙系统 前端框架 sqlserver rust腐蚀 kubernetes 计算机外设 电脑 软件需求 .net 深度学习 YOLO 目标检测 计算机视觉 aws googlecloud vSphere vCenter 软件定义数据中心 sddc filezilla 无法连接服务器 连接被服务器拒绝 vsftpd 331/530 HCIE 数通 外网访问 内网穿透 端口映射 efficientVIT YOLOv8替换主干网络 TOLOv8 .netcore node.js json html5 firefox adb live555 rtsp rtp WSL2 vim HarmonyOS Next 开源 vue3 HTML audio 控件组件 vue3 audio音乐播放器 Audio标签自定义样式默认 vue3播放音频文件音效音乐 自定义audio播放器样式 播放暂停调整声音大小下载文件 命名管道 客户端与服务端通信 学习方法 经验分享 程序人生 numpy asm springsecurity6 oauth2 授权服务器 token sas FTP 服务器 低代码 tcpdump 源码剖析 rtsp实现步骤 流媒体开发 jenkins ci/cd devops 安装教程 GPU环境配置 Ubuntu22 CUDA PyTorch Anaconda安装 pdf unix ArcTS 登录 ArcUI GridItem 多线程服务器 Linux网络编程 arkUI NPS 雨云服务器 雨云 web安全 ddos 可信计算技术 密码学 list 数据结构 服务器数据恢复 数据恢复 存储数据恢复 raid5数据恢复 磁盘阵列数据恢复 shell 远程控制 远程看看 远程协助 visualstudio 腾讯云 其他 spring rsyslog tomcat apache git elasticsearch 串口服务器 Trae IDE AI 原生集成开发环境 Trae AI TRAE C语言 驱动开发 硬件工程 嵌入式实习 gpt conda ipython https chatgpt DeepSeek llm 本地部署 api hadoop DigitalOcean GPU服务器购买 GPU服务器哪里有 GPU服务器 bootstrap html redis Kali Linux 黑客 渗透测试 信息收集 zabbix 监控 系统架构 Linux ecmascript nextjs react reactjs stm32 pygame 小游戏 五子棋 压测 ECS ssrf 失效的访问控制 AI 软件工程 政务 分布式系统 监控运维 Prometheus Grafana Google pay Apple pay android studio 交互 nvidia gpu算力 僵尸进程 LLM 大模型面经 职场和发展 Deepseek 大模型学习 matplotlib 交换机 telnet 远程登录 机器人 visual studio code agi VMware安装Ubuntu Ubuntu安装k8s k8s 课程设计 混合开发 环境安装 JDK centos-root /dev/mapper yum clean all df -h / du -sh 能力提升 面试宝典 技术 IT信息化 金融 京东云 c语言 thingsboard postgresql safari pip Mac 系统 视觉检测 腾讯云大模型知识引擎 yum prometheus k8s资源监控 annotations自动化 自动化监控 监控service 监控jvm 实战案例 VMware创建虚拟机 测试工具 rabbitmq 直播推流 chrome 浏览器下载 chrome 下载安装 谷歌浏览器下载 报错 Java 缓存 eureka word图片自动上传 word一键转存 复制word图片 复制word图文 复制word公式 粘贴word图文 粘贴word公式 状态管理的 UDP 服务器 Arduino RTOS 服务器配置 生物信息学 springboot远程调试 java项目远程debug docker远程debug java项目远程调试 springboot远程 django 飞牛NAS 飞牛OS MacBook Pro Invalid Host allowedHosts vue 远程连接 rdp 实验 YOLOv12 fpga开发 jar gradle Ubuntu Server Ubuntu 22.04.5 microsoft react.js 前端面试题 持续部署 RAID RAID技术 磁盘 存储 YOLOv8 NPU Atlas800 A300I pro asi_bench C# MQTTS 双向认证 emqx Agent maven svn threejs 3D KylinV10 麒麟操作系统 虚拟机 Vmware SenseVoice mybatis excel Qwen2.5-coder 离线部署 企业微信 Linux24.04 deepin 多进程 Reactor 设计模式 C++ AI代码编辑器 kylin express UOS 统信操作系统 transformer ping++ 深度优先 图论 并集查找 换根法 树上倍增 iBMC UltraISO qt stm32项目 KVM llama3 Chatglm 开源大模型 远程工作 kafka wireshark zotero WebDAV 同步失败 Cookie jupyter ocr webrtc Portainer搭建 Portainer使用 Portainer使用详解 Portainer详解 Portainer portainer ue4 着色器 ue5 虚幻 bash jmeter 压力测试 测试用例 功能测试 mongodb 部署 next.js 部署next.js 安卓 银河麒麟服务器操作系统 系统激活 ansible playbook 剧本 博客 dify 微信小程序 AP配网 AK配网 小程序AP配网和AK配网教程 WIFI设备配网小程序UDP开 mamba Vmamba grafana oceanbase rc.local 开机自启 systemd AI大模型 程序员 负载均衡 硬件 设备 GPU PCI-Express 小程序 进程信号 医疗APP开发 app开发 firewalld 智能手机 NAS Termux Samba 中间件 安全架构 网络攻击模型 ollama下载加速 n8n 工作流 workflow SWAT 配置文件 服务管理 网络共享 gaussdb linux 命令 sed 命令 intellij idea 并查集 leetcode kali 共享文件夹 asp.net大文件上传 asp.net大文件上传源码 ASP.NET断点续传 asp.net上传文件夹 asp.net上传大文件 .net core断点续传 .net mvc断点续传 micropython esp32 mqtt virtualenv 实时音视频 ragflow ruoyi IIS服务器 IIS性能 日志监控 虚拟化 半虚拟化 硬件虚拟化 Hypervisor yum源切换 更换国内yum源 gitee 服务器管理 宝塔面板 配置教程 服务器安装 网站管理 r语言 数据可视化 数据分析 sqlite 蓝耘科技 元生代平台工作流 ComfyUI 矩阵 kvm 工业4.0 windwos防火墙 defender防火墙 win防火墙白名单 防火墙白名单效果 防火墙只允许指定应用上网 防火墙允许指定上网其它禁止 客户端 java-ee 高效远程协作 TrustViewer体验 跨设备操作便利 智能远程控制 spring cloud hibernate 大模型入门 大模型教程 IPMI 漏洞 kind 命令 微信开放平台 微信公众平台 微信公众号配置 同步 备份 建站 安全威胁分析 Java Applet URL操作 服务器建立 Socket编程 网络文件读取 protobuf 序列化和反序列化 安装 跨域 bug 豆瓣 追剧助手 迅雷 nas 微信 wsl2 wsl 大语言模型 弹性计算 云服务器 裸金属服务器 弹性裸金属服务器 openEuler unity3d 服务器繁忙 网络穿透 自动驾驶 dns 恒源云 Docker Hub docker pull 镜像源 daemon.json 致远OA OA服务器 服务器磁盘扩容 springboot gitlab okhttp CORS oneapi 大模型微调 微信分享 Image wxopensdk rpc Ark-TS语言 传统数据库升级 银行 软件测试 arm 数据集 MQTT mosquitto 消息队列 QQ bot Docker 自动化运维 gateway Clion Nova ResharperC++引擎 Centos7 远程开发 outlook kamailio sip VoIP 大数据平台 echarts 信息可视化 网页设计 媒体 pillow VMware安装mocOS VMware macOS系统安装 AISphereButler 框架搭建 WSL win11 无法解析服务器的名称或地址 产品经理 微信小程序域名配置 微信小程序服务器域名 微信小程序合法域名 小程序配置业务域名 微信小程序需要域名吗 微信小程序添加域名 Cline 自动化编程 EasyConnect RustDesk自建服务器 rustdesk服务器 docker rustdesk web3.py 服务器主板 AI芯片 孤岛惊魂4 ros2 moveit 机器人运动 华为od OD机试真题 华为OD机试真题 服务器能耗统计 RTMP 应用层 RoboVLM 通用机器人策略 VLA设计哲学 vlm fot robot 视觉语言动作模型 具身智能 xrdp 远程桌面 string模拟实现 深拷贝 浅拷贝 经典的string类问题 三个swap 游戏服务器 TrinityCore 魔兽世界 开发环境 SSL证书 代码调试 ipdb adobe Python 网络编程 聊天服务器 套接字 TCP Socket 远程 执行 sshpass 操作 IPMITOOL BMC 硬件管理 opcua opcda KEPServer安装 rime 游戏程序 崖山数据库 YashanDB 繁忙 解决办法 替代网站 汇总推荐 AI推理 chrome devtools selenium chromedriver Ubuntu 24.04.1 轻量级服务器 MQTT协议 消息服务器 代码 NFS redhat dba tidb GLIBC asp.net大文件上传下载 群晖 文件分享 iis VSCode 云服务 单元测试 odoo 服务器动作 Server action 蓝桥杯 高级IO epoll 银河麒麟操作系统 国产化 服务器部署ai模型 sqlite3 Cursor Docker Compose docker compose docker-compose Anolis nginx安装 linux插件下载 高效日志打印 串口通信日志 服务器日志 系统状态监控日志 异常记录日志 毕设 v10 软件 监控k8s集群 集群内prometheus 无人机 无桌面 命令行 3d GIS 遥感 WebGIS docker命令大全 5G 3GPP 卫星通信 nac 802.1 portal 三级等保 服务器审计日志备份 css sdkman 联想开天P90Z装win10 Kylin-Server 国产操作系统 Redis Desktop 多个客户端访问 IO多路复用 回显服务器 TCP相关API matlab 图形渲染 软考 DevEco Studio 黑苹果 流式接口 网工 搜索引擎 链表 宕机切换 服务器宕机 小番茄C盘清理 便捷易用C盘清理工具 小番茄C盘清理的优势尽显何处? 教你深度体验小番茄C盘清理 C盘变红?!不知所措? C盘瘦身后电脑会发生什么变化? alias unalias 别名 虚拟局域网 ceph selete windows日志 vue-i18n 国际化多语言 vue2中英文切换详细教程 如何动态加载i18n语言包 把语言json放到服务器调用 前端调用api获取语言配置文件 Claude eNSP 网络规划 VLAN 企业网络 显卡驱动 SRS 流媒体 直播 数据库架构 数据管理 数据治理 数据编织 数据虚拟化 Deepseek-R1 私有化部署 推理模型 mysql离线安装 ubuntu22.04 mysql8.0 elk 源码 毕业设计 idm 深度求索 私域 知识库 gpt-3 文心一言 匿名管道 环境迁移 python3.11 frp dash 正则表达式 基础入门 编程 hive Hive环境搭建 hive3环境 Hive远程模式 序列化反序列化 自动化测试 性能测试 netty ruby 远程过程调用 Windows环境 IIS .net core Hosting Bundle .NET Framework vs2022 XFS xfs文件系统损坏 I_O error flash-attention es jvm 华为认证 网络工程师 拓扑图 相差8小时 UTC 时间 ip命令 新增网卡 新增IP 启动网卡 docker搭建nacos详解 docker部署nacos docker安装nacos 腾讯云搭建nacos centos7搭建nacos openwrt USB网络共享 gitea Playwright risc-v P2P HDLC 思科 MySql JAVA linux上传下载 鲲鹏 昇腾 npu QT 5.12.12 QT开发环境 Ubuntu18.04 技能大赛 cnn 邮件APP 免费软件 程序 性能分析 vmware 卡死 Wi-Fi web DNS uv 计算机 SysBench 基准测试 wps ecm bpm 云电竞 云电脑 todesk 音乐服务器 Navidrome 音流 MCP server C/S linux安装配置 rocketmq Minecraft DOIT 四博智联 版本 deepseek r1 备份SQL Server数据库 数据库备份 傲梅企业备份网络版 etcd 数据安全 RBAC Docker引擎已经停止 Docker无法使用 WSL进度一直是0 镜像加速地址 seatunnel DBeaver 数据仓库 kerberos iftop 网络流量监控 Dell HPE 联想 浪潮 iDRAC R720xd freebsd make命令 makefile文件 硬件架构 openstack Xen 目标跟踪 OpenVINO 推理应用 磁盘监控 聊天室 开机自启动 rag ragflow 源码启动 uni-file-picker 拍摄从相册选择 uni.uploadFile H5上传图片 微信小程序上传图片 文件系统 路径解析 FunASR ASR file server http server web server muduo 个人博客 X11 Xming ui 集成学习 集成测试 计算虚拟化 弹性裸金属 OpenManus 宝塔 王者荣耀 系统安全 minio lio-sam SLAM glibc mariadb langchain prompt RAGFLOW RAG 检索增强生成 文档解析 大模型垂直应用 软负载 yolov8 阻塞队列 生产者消费者模型 服务器崩坏原因 CLion 网站搭建 serv00 jetty undertow 实时互动 Node-Red 编程工具 流编程 Linux无人智慧超市 LInux多线程服务器 QT项目 LInux项目 单片机项目 SSH bcompare Beyond Compare Linux awk awk函数 awk结构 awk内置变量 awk参数 awk脚本 awk详解 磁盘镜像 服务器镜像 服务器实时复制 实时文件备份 p2p openvpn server openvpn配置教程 centos安装openvpn Erlang OTP gen_server 热代码交换 事务语义 curl wget 大模型应用 MNN Qwen ip ios hugo 设置代理 实用教程 Netty 即时通信 NIO 远程服务 SSH 密钥生成 SSH 公钥 私钥 生成 HTTP 服务器控制 ESP32 DeepSeek 银河麒麟桌面操作系统 Kylin OS DeepSeek行业应用 Heroku 网站部署 在线预览 xlsx xls文件 在浏览器直接打开解析xls表格 前端实现vue3打开excel 文件地址url或接口文档流二进 迁移指南 游戏机 思科模拟器 Cisco nuxt3 vasp安装 EMUI 回退 降级 升级 权限 SSH 服务 SSH Server OpenSSH Server AI写作 AI作画 自动化任务管理 模拟退火算法 线程 算力 代理 fd 文件描述符 npm openssl 灵办AI 银河麒麟高级服务器 外接硬盘 Kylin 社交电子 vr 数据库系统 直流充电桩 充电桩 图形化界面 W5500 OLED u8g2 TCP服务器 chfs ubuntu 16.04 指令 mq x64 SIGSEGV SSE xmm0 边缘计算 vscode 1.86 火绒安全 Nuxt.js Xterminal webstorm Linux的权限 tensorflow trae GCC crosstool-ng 多层架构 解耦 飞书 Ubuntu DeepSeek DeepSeek Ubuntu DeepSeek 本地部署 DeepSeek 知识库 DeepSeek 私有化知识库 本地部署 DeepSeek DeepSeek 私有化部署 uniapp 备选 网站 调用 示例 强制清理 强制删除 mac废纸篓 CPU 主板 电源 网卡 xml WebUI DeepSeek V3 运维监控 LLMs 分析解读 北亚数据恢复 oracle数据恢复 pyautogui qemu libvirt cmos code-server pgpool minicom 串口调试工具 XCC Lenovo 田俊楠 DenseNet 移动云 MS Materials CrewAI log4j 业界资讯 自定义客户端 SAS embedding nfs 重启 排查 系统重启 日志 原因 SSL 域名 华为机试 MacMini 迷你主机 mini Apple skynet 宠物 免费学习 宠物领养 宠物平台 小艺 Pura X LORA NLP remote-ssh ukui 麒麟kylinos openeuler gcc 统信 虚拟机安装 DocFlow 图像处理 Jellyfin 信号处理 云桌面 微软 AD域控 证书服务器 大大通 第三代半导体 碳化硅 UDP的API使用 xcode ftp rustdesk VPS pyqt centos 7 docker run 数据卷挂载 交互模式 怎么卸载MySQL MySQL怎么卸载干净 MySQL卸载重新安装教程 MySQL5.7卸载 Linux卸载MySQL8.0 如何卸载MySQL教程 MySQL卸载与安装 英语 黑客技术 VR手套 数据手套 动捕手套 动捕数据手套 k8s集群资源管理 云原生开发 URL 系统开发 binder 车载系统 framework 源码环境 网络结构图 opensearch helm Linux PID MI300x WebRTC web3 LInux deep learning Ubuntu 24 常用命令 Ubuntu 24 Ubuntu vi 异常处理 ux 多线程 vscode1.86 1.86版本 ssh远程连接 输入法 open Euler dde av1 电视盒子 机顶盒ROM 魔百盒刷机 监控k8s 监控kubernetes 数学建模 big data xshell termius iterm2 dity make open webui neo4j 数据库开发 database 显示过滤器 ICMP Wireshark安装 linux环境变量 单一职责原则 keepalived sonoma 自动更新 c 视频编解码 spark HistoryServer Spark YARN jobhistory 流水线 脚本式流水线 反向代理 searxng 网络药理学 生信 PPI String Cytoscape CytoHubba 服务网格 istio DIFY firewall 僵尸世界大战 游戏服务器搭建 IM即时通讯 剪切板对通 HTML FORMAT 金仓数据库 2025 征文 数据库平替用金仓 zookeeper saltstack 游戏引擎 抗锯齿 ldap 语法 阿里云ECS Typore nlp HarmonyOS OpenHarmony 真机调试 swoole 架构与原理 ROS 聚类 捆绑 链接 谷歌浏览器 youtube google gmail 内网环境 Linux环境 相机 强化学习 Python基础 Python教程 Python技巧 上传视频文件到服务器 uniApp本地上传视频并预览 uniapp移动端h5网页 uniapp微信小程序上传视频 uniapp app端视频上传 uniapp uview组件库 rclone AList webdav fnOS IDEA RAGFlow 本地知识库部署 DeepSeek R1 模型 网卡的名称修改 eth0 ens33 triton 模型分析 less prometheus数据采集 prometheus数据模型 prometheus特点 大文件分片上传断点续传及进度条 如何批量上传超大文件并显示进度 axios大文件切片上传详细教 node服务器合并切片 vue3大文件上传报错提示错误 大文件秒传跨域报错cors regedit 开机启动 AnythingLLM AnythingLLM安装 Unity Dedicated Server Host Client 无头主机 Linux的基础指令 交叉编译 powerpoint 环境配置 人工智能生成内容 常用命令 文本命令 目录命令 考研 基础环境 tcp 历史版本 下载 db webgl etl 主从复制 css3 玩机技巧 软件分享 软件图标 sentinel cfssl 知识图谱 信创 信创终端 中科方德 私有化 midjourney can 线程池 FTP服务器 WSL2 上安装 Ubuntu c/c++ 串口 wordpress 无法访问wordpess后台 打开网站页面错乱 linux宝塔面板 wordpress更换服务器 vpn 虚拟现实 ssh远程登录 佛山戴尔服务器维修 佛山三水服务器维修 双系统 GRUB引导 Linux技巧 ssh漏洞 ssh9.9p2 CVE-2025-23419 harmonyOS面试题 我的世界服务器搭建 加解密 Yakit yaklang 干货分享 黑客工具 密码爆破 用户缓冲区 模拟实现 Spring Security 技术共享 我的世界 我的世界联机 数码 移动魔百盒 支付 微信支付 开放平台 USB转串口 CH340 ArkTs ArkUI PX4 浏览器开发 AI浏览器 服务器时间 C++软件实战问题排查经验分享 0xfeeefeee 0xcdcdcdcd 动态库加载失败 程序启动失败 程序运行权限 标准用户权限与管理员权限 进程优先级 调度队列 进程切换 yaml Ultralytics 可视化 eclipse Mac内存不够用怎么办 执法记录仪 智能安全帽 smarteye IO模型 tailscale derp derper 中转 cocoapods 线性代数 电商平台 aarch64 编译安装 HPC rnn lua OpenSSH Kali 渗透 cursor 域名服务 DHCP 符号链接 配置 perf 音乐库 飞牛 iphone H3C 树莓派 VNC jina pppoe radius 产测工具框架 IMX6ULL 管理框架 Ubuntu共享文件夹 共享目录 Linux共享文件夹 镜像 AI agent iventoy VmWare OpenEuler k8s二次开发 集群管理 Ubuntu22.04 开发人员主页 服务器无法访问 ip地址无法访问 无法访问宝塔面板 宝塔面板打不开 trea idea seleium TCP协议 IMX317 MIPI H265 VCU composer su sudo 前后端分离 Logstash 日志采集 开发 rtsp服务器 rtsp server android rtsp服务 安卓rtsp服务器 移动端rtsp服务 大牛直播SDK edge浏览器 键盘 grub 版本升级 扩容 嵌入式系统开发 ISO镜像作为本地源 串口驱动 CH341 uart 485 游戏开发 ubuntu24.04.1 网络建设与运维 代理服务器 NLP模型 自学笔记 小米 澎湃OS Android 显示管理器 lightdm gdm 策略模式 单例模式 miniapp 调试 debug 断点 网络API请求调试方法 HiCar CarLife+ CarPlay QT RK3588 banner 读写锁 AI Agent 字节智能运维 模拟器 教程 fast bat 端口 查看 ss 大模型推理 IPv4 子网掩码 公网IP 私有IP dns是什么 如何设置电脑dns dns应该如何设置 xss llama.cpp minecraft easyui 大模型部署 嵌入式Linux IPC 查询数据库服务IP地址 SQL Server 分布式训练 AutoDL ShenTong 稳定性 看门狗 国标28181 视频监控 监控接入 语音广播 流程 SIP SDP 多端开发 智慧分发 应用生态 鸿蒙OS 飞牛nas fnos Radius apt qt项目 qt项目实战 qt教程 中兴光猫 换光猫 网络桥接 自己换光猫 代码托管服务 物联网开发 根服务器 clickhouse 区块链 UOS1070e DeepSeek r1 Open WebUI EMQX 通信协议 VS Code 免费域名 域名解析 小智AI服务端 xiaozhi TTS junit AD 域管理 换源 国内源 Debian SEO CentOS AI-native Docker Desktop laravel 内网服务器 内网代理 内网通信 VM搭建win2012 win2012应急响应靶机搭建 攻击者获取服务器权限 上传wakaung病毒 应急响应并溯源 挖矿病毒处置 应急响应综合性靶场 需求分析 规格说明书 办公自动化 自动化生成 pdf教程 李心怡 互信 arcgis 毕昇JDK 上传视频至服务器代码 vue3批量上传多个视频并预览 如何实现将本地视频上传到网页 element plu视频上传 ant design vue vue3本地上传视频及预览移除 deekseek 像素流送api 像素流送UE4 像素流送卡顿 像素流送并发支持 autodl AD域 g++ g++13 影刀 #影刀RPA# docker部署Python 语音识别 EtherNet/IP串口网关 EIP转RS485 EIP转Modbus EtherNet/IP网关协议 EIP转RS485网关 EIP串口服务器 figma WebVM Headless Linux 信号 安防软件 推荐算法 端口测试 wpf 软件构建 CDN onlyoffice 虚拟显示器 cd 目录切换 ros flink 增强现实 沉浸式体验 应用场景 技术实现 案例分析 AR Xinference GoogLeNet armbian u-boot 虚幻引擎 virtualbox 存储维护 NetApp存储 EMC存储 ubuntu24 vivado24 gromacs 分子动力学模拟 MD 动力学模拟 TrueLicense Windows ai工具 java-rocketmq 做raid 装系统 项目部署到linux服务器 项目部署过程 CVE-2024-7347 超融合 h.264 程序员创富 WLAN 本地部署AI大模型 rancher 7z LLM Web APP Streamlit lsb_release /etc/issue /proc/version uname -r 查看ubuntu版本 cpp-httplib IMM 智能音箱 智能家居 react native sysctl.conf vm.nr_hugepages 实习 CentOS Stream ip协议 nftables 防火墙 合成模型 扩散模型 图像生成 鸿蒙开发 移动开发 yolov5 sequoiaDB ubuntu 18.04 MVS 海康威视相机 云耀服务器 dock 加速 Web服务器 多线程下载工具 PYTHON proxy模式 性能调优 安全代理 NAT转发 NAT Server 在线office 磁盘清理 软件卸载 系统清理 容器技术 Linux权限 权限命令 特殊权限 ubuntu20.04 开机黑屏 本地化部署 沙盒 word 多路转接 MAC SecureCRT docker搭建pg docker搭建pgsql pg授权 postgresql使用 postgresql搭建 UEFI Legacy MBR GPT U盘安装操作系统 对比 工具 meld DiffMerge 智能电视 健康医疗 互联网医院 MacOS 软链接 硬链接 UDP 项目部署 流量运营 带外管理 欧标 OCPP deployment daemonset statefulset cronjob 粘包问题 kernel mcp服务器 client close AI员工 Unity插件 MAVROS 四旋翼无人机 国产数据库 瀚高数据库 数据迁移 下载安装 IO milvus navicat 端口聚合 windows11 Attention System V共享内存 进程通信 Qwen2.5-VL vllm docker desktop image nosql 通信工程 毕业 极限编程 安装MySQL Reactor反应堆 docker部署翻译组件 docker部署deepl docker搭建deepl java对接deepl 翻译组件使用 win服务器架设 windows server 离线部署dify rpa iperf3 带宽测试 gnu 企业网络规划 华为eNSP Linux find grep SVN Server tortoise svn 钉钉 查看显卡进程 fuser ArtTS 状态模式 ABAP 抓包工具 nvm whistle React Next.js 开源框架 HAProxy 元服务 应用上架 热榜 hexo visual studio perl MDK 嵌入式开发工具 论文笔记 sublime text vnc ranger MySQL8.0 zip unzip hosts 网络爬虫 电视剧收视率分析与可视化平台 wsgiref Web 服务器网关接口 ardunio BLE 浏览器自动化 kotlin 计算生物学 生物信息 基因组 问题解决 HarmonyOS NEXT 原生鸿蒙 Sealos 论文阅读 fstab xpath定位元素 ros1 Noetic 20.04 apt 安装 烟花代码 烟花 元旦 top Linux top top命令详解 top命令重点 top常用参数 vu大文件秒传跨域报错cors 网络搭建 神州数码 神州数码云平台 云平台 copilot js 视频平台 录像 视频转发 视频流 大模型技术 本地部署大模型 隐藏文件 隐藏目录 管理器 通配符 lb 协议 搭建个人相关服务器 数字证书 签署证书 服务器安全 网络安全策略 防御服务器攻击 安全威胁和解决方案 程序员博客保护 数据保护 安全最佳实践 服务器正确解析请求体 CosyVoice 达梦 DM8 接口优化 conda配置 conda镜像源 MobaXterm 机柜 1U 2U 本地环回 bind 解决方案 macOS powerbi mm-wiki搭建 linux搭建mm-wiki mm-wiki搭建与使用 mm-wiki使用 mm-wiki详解 话题通信 服务通信 yum换源 风扇控制软件 Linux 维护模式 java-rabbitmq WebServer 搜狗输入法 中文输入法 西门子PLC 通讯