2022/6/15 docker安装与项目部署(入门教程)

2023-05-16

目录

一丶docker简介

二丶Docker私库简介(Dockerhub)

三丶Docker优势

四丶docker安装

        4.1 使用官方安装脚本自动安装 (仅适用于公网环境)

        4.2 手动安装

                4.2.1 Ubuntu 14.04 16.04

                4.2.2 CentOS 7

        4.2 安装校验

        4.3 镜像加速器

        4.4 测试是否成功

五丶docker常用命令

六丶docker部署项目

        6.1丶安装mysql

        6.2丶安装tomcat

        6.3丶部署项目

        6.4丶访问运行结果

七丶安装dockerCompose

        7.1 docker三剑客之一

        7.2 示例docker-compose.yaml文件


一丶docker简介

        Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 包括三个基本概念:

  • 镜像(Image)---->应用商店:Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

  • 容器(Container)---->安装包:镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

  • 仓库(Repository)---->应用程序:仓库可看成一个代码控制中心,用来保存镜像。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

二丶Docker私库简介(Dockerhub)

传送门:Docker Hub

类似maven的私有仓库

官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像。这个可以通过开源软件Registry来达成目的。

Registry在github上有两份代码:老代码库和新代码库。老代码是采用python编写的,存在pull和push的性能问题,出到0.9.1版本之后就标志为deprecated,不再继续开发。从2.0版本开始就到在新代码库进行开发,新代码库是采用go语言编写,修改了镜像id的生成算法、registry上镜像的保存结构,大大优化了pull和push镜像的效率。

官方在Docker hub上提供了registry的镜像(详情),我们可以直接使用该registry镜像来构建一个容器,搭建我们自己的私有仓库服务。

三丶Docker优势

Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

        1、快速,一致地交付您的应用程序

Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。容器非常适合持续集成和持续交付(CI / CD)工作流程。

        2、响应式部署和扩展

Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。

Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。

        3、在同一硬件上运行更多工作负载

Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。Docker 非常适合于高密度环境以及中小型部署,可以用更少的资源做更多的事情。

四丶docker安装

        这里以CentOS 7操作系统为例

        4.1 使用官方安装脚本自动安装 (仅适用于公网环境)

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

        4.2 手动安装

(阿里云ECS可以通过内网安装,见注释部分内容)

                4.2.1 Ubuntu 14.04 16.04

(使用apt-get进行安装)

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书e
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

注意:其他注意事项在下面的注释中
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
#   docker-ce | 17.03.1~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
#   docker-ce | 17.03.0~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]

# 通过经典网络、VPC网络内网安装时,用以下命令替换Step 2、Step 3中的命令
# 经典网络:
# curl -fsSL http://mirrors.aliyuncs.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# VPC网络:
# curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# sudo add-apt-repository "deb [arch=amd64] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

                4.2.2 CentOS 7

(使用yum进行安装)

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

注意:其他注意事项在下面的注释中
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
# 注意:在某些版本之后,docker-ce安装出现了其他依赖包,如果安装失败的话请关注错误信息。例如 docker-ce 17.03 之后,需要先安装 docker-ce-selinux。
# yum list docker-ce-selinux- --showduplicates | sort -r
# sudo yum -y install docker-ce-selinux-[VERSION]

# 通过经典网络、VPC网络内网安装时,用以下命令替换Step 2中的命令
# 经典网络:
# sudo yum-config-manager --add-repo http://mirrors.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
# VPC网络:
# sudo yum-config-manager --add-repo http://mirrors.could.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo

        4.2 安装校验

docker version
Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64
 Experimental: false

        4.3 镜像加速器

每个人的镜像加速器地址都不一样

参考网址:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

使用加速器可以提升获取Docker官方镜像的速度

加速地址: https://1sbmxpab.mirror.aliyuncs.com

  • Ubuntu

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://1sbmxpab.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • CentOS

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://1sbmxpab.mirror.aliyuncs.com"]
}
EOF
#配置完之后记得重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker

        4.4 测试是否成功

docker info
 Registry Mirrors:
  https://3rgzvcby.mirror.aliyuncs.com/
 Live Restore Enabled: false

五丶docker常用命令

        参考地址:docker 常用命令大全_保护我方胖虎的博客-CSDN博客_docker常用命令

docker
	仓库  Repository--------------应用商店
	镜像  image--------------安装包
	容器  container------------应用程序

启动docker
	systemctl start docker.service
查看docker状态
	systemctl status docker.service
设置docker开机自启
	systemctl enable docker.service
查看某个程序的端口/状态是否在运行
	ps -ef | grep 应用程序名称: ps -ef | grep tomcat/redis/nginx
	netstat -ntlp:查看系统中的端口以及程序运行清空  yum -y install net-tools
	kill 结束进程  kill -9 强制结束进程

dockerhub:镜像仓库
	https://hub.docker.com/

查找镜像
	docker search mysql
拉取镜像
	docker pull mysql:5.7
查看镜像
	docker images
删除镜像  
	docker rmi 镜像ID

运行容器
	docker run xxxxx //--name mysql57 -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d mysql:5.7

--name    容器的名字  mysql5.7
--e           运行的环境  MYSQL_ROOT_PASSWORD=123456
--p	端口映射	3306:3306    宿主机端口:容器端口
--d	后台运行   daemonize

查看启动的容器
	cid为运行容器的(CONTAINER ID )编号
docker  ps  (-a):-a未启动的也会被查询出来,没有-a只是查询启动的
docker rm $(docker ps -a -q)   删除所有已经停止的容器
docker  stop cid(容器id)停止正在运行的容器
docker  start cid	开启停止运行的容器
docker restart id      重启容器
docker rm  cid(虽然创建一个容器很简单,但是不能随便删除容器,因为我们的数据都在容器中,正在运行的容器不能直接删除)
	数据卷(volumns):将容器中的数据卷入到本地,简写为-v
docker rm -f cid  暴力删除
docker rm $(docker ps -qa)  删除所有的容器   rm -rf /*:删除根目录所有文件(重装系统gg)
docker run -itd --name myredis -p 6379:6379 redis:4.0.0  启动redis
docker run --name mytomcat -p 8080:8080 -d tomcat:7.0.62 启动tomcat
进入容器内部(为了修改配置):
	docker exec -it cid /bin/bash

docker cp /home/SSMmaven.war 1b6559fa300c:/usr/local/tomcat/webapps
复制SSMmaven.war包到docker容器的webapps目录下

六丶docker部署项目

        6.1丶安装mysql

                1.拉取镜像

docker pull mysql:5.7

                2.启动镜像

运行容器
	docker run xxxxx 

示例
    docker run --name mysql57 -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d mysql:5.7

--name    容器的名字  mysql5.7
--e           运行的环境  MYSQL_ROOT_PASSWORD=123456
--p	端口映射	3306:3306    宿主机端口:容器端口
--d	后台运行   daemonize

                3.测试连接

        6.2丶安装tomcat

                 1.拉取镜像

docker pull tomcat:8.5.55

                 2.启动镜像

docker run --name mytomcat -p 8080:8080 -d tomcat:7.0.62

        6.3丶部署项目

                1.找一个可以运行的SSM项目打成war包

                2. 把war包传输到home文件夹下

                 3.把war包复制到docker运行的tomcat镜像的webapps文件夹下

docker cp  文件所在目录  运行容器的id:/usr/local/tomcat/webapps

示例:

docker cp /home/SSMmaven.war 1b6559fa300c:/usr/local/tomcat/webapps

复制SSMmaven.war包到docker容器的webapps目录下

                4.重启tomcat

docker restart id      重启容器
[root@iZwz9dfezxci90bavleqkxZ home]# docker ps
CONTAINER ID   IMAGE           COMMAND                  CREATED        STATUS        PORTS                               NAMES
6e658f584a5c   tomcat:8.5.55   "catalina.sh run"        4 hours ago    Up 4 hours    0.0.0.0:8080->8080/tcp              mytomcat
f3eeeb87c7f6   redis:4.0.0     "docker-entrypoint.s…"   21 hours ago   Up 21 hours   0.0.0.0:6379->6379/tcp              myredis
dfaa1d5d9374   mysql:5.7       "docker-entrypoint.s…"   22 hours ago   Up 22 hours   33060/tcp, 0.0.0.0:3307->3306/tcp   mysql57

docker restart 6e658f584a5c

        6.4丶访问运行结果

七丶安装dockerCompose

        7.1 docker三剑客之一

# 下载1.25.0 docker compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 测试安装
sudo docker-compose --version
#启动一个容器
#docker-compose命令需要在docker-compose.yaml文件同一目录下执行
docker-compose up -d
#停止容器
docker-compose down

        7.2 示例docker-compose.yaml文件

version: "3"
networks:
    traefik:
        external: true
services:
  mysql:
    container_name: mysql
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=123456
    volumes:
      - /app/cloud/mysql/data:/var/lib/mysql
    ports:
      - "3307:3306"
    restart: always

  nacos:
    image: nacos/nacos-server:1.4.1
    container_name: nacos
    hostname: nacos
    restart: always
    environment:
      - MODE=standalone
      - TZ=Asia/Shanghai
      - NACOS_SERVER_PORT=8848
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=47.107.249.34
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - PREFER_HOST_MODE=hostname
    volumes:
      - /app/cloud/nacos/logs:/home/nacos/logs
    ports:
      - "8848:8848"
  sentinel:
    image: bladex/sentinel-dashboard:1.8.0
    container_name: sentinel
    ports:
      - "8858:8858"
    restart: always

  rabbitmq:
    hostname: rabbitmq
    environment:
      RABBITMQ_DEFAULT_VHOST: "root"
      RABBITMQ_DEFAULT_USER: "root"
      RABBITMQ_DEFAULT_PASS: "123456"
    image: "rabbitmq:3.9.14-management"
    restart: always
    volumes:
      - "/usr/local/bank/rabbitmq/data:/var/lib/rabbitmq"
      - "/usr/local/bank/rabbitmq/log:/var/lib/rabbitmq/log"
    ports:
      - "15672:15672"
      - "4369:4369"
      - "5672:5672"
      - "25672:25672"
      
  mqnamesrv:
    image: foxiswho/rocketmq:4.7.0
    container_name: mqnamesrv
    ports:
      - 9876:9876
    environment:
      JAVA_OPT: -server -Xms256m -Xmx256m
    command: sh mqnamesrv
  mqbroker:
    image: foxiswho/rocketmq:4.7.0
    container_name: mqbroker
    ports:
      - 10911:10911
      - 10909:10909
    volumes:
      - ./conf/broker.conf:/usr/local/docker/conf/broker.conf
    environment:
      JAVA_OPT_EXT: -server -Xms256m -Xmx256m -Xmn128m
      NAMESRV_ADDR: mqnamesrv:9876
    command: sh mqbroker -n mqnamesrv:9876 -c /usr/local/docker/conf/broker.conf
  mqconsole:
    image: styletang/rocketmq-console-ng
    container_name: mqconsole
    ports:
      - 19876:8080
    environment:
      JAVA_OPTS: -Drocketmq.namesrv.addr=mqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=falses
      
  portainer:
    container_name: portainer
    image: portainer/portainer:latest
    restart: always
    volumes: 
      - /var/run/docker.sock:/var/run/docker.sock:rw
      - ./ortainer_data:/data:rw
      - ./public:/public:rw
    networks:
        - traefik
    ports:
      - "9000:9000"
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik"
      - "traefik.http.routers.portainer_halobug.entrypoints=https"
      - "traefik.http.routers.portainer_halobug.rule=Host(`47.107.249.34`)"
      - "traefik.http.routers.portainer_halobug.tls=true"
      - "traefik.http.services.portainer_halobug-backend.loadbalancer.server.scheme=http"
      - "traefik.http.services.portainer_halobug-backend.loadbalancer.server.port=9000"
    logging:
      driver: "json-file"
      options:
        max-size: "10m"  

MySQL 8.x

version: '3.1'
services:
  mysql8:
    image: mysql:8.0.13
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql

adminer

version: '3.1'
services:
  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

gitlab

version: '3'
services:
    web:
      image: 'twang2218/gitlab-ce-zh'
      restart: always
      hostname: '119.45.140.73'
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://119.45.140.73:8080'
          gitlab_rails['gitlab_shell_ssh_port'] = 2222
          unicorn['port'] = 8888
          nginx['listen_port'] = 8080
      ports:
        - '8080:8080'
        - '8443:443'
        - '2222:22'
      volumes:
        - ./config:/etc/gitlab
        - ./data:/var/opt/gitlab
        - ./logs:/var/log/gitlab

Jenkins

version: '3.1'
services:
  jenkins:
    restart: always
    image: jenkinsci/jenkins
    container_name: jenkins
    ports:
      - 8080:8080
      - 50000:50000
    environment:
      TZ: Asia/Shanghai
    volumes:
      - data:/var/jenkins_home

volumes:
  data:

tomcat

version: '3.1'
services:
  tomcat:
    image: tomcat:latest
    restart: always
    ports:
      - 8080:8080

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022/6/15 docker安装与项目部署(入门教程) 的相关文章

  • ROS知识(16)----如何编译时自动链接同一个工作空间的其他包的头文件(包含message,srv,action自动生成的头文件)...

    catkin make编译时 xff0c 往往需要自动链接同一个工作空间的其他包的头文件 否则会出现类似如下的错误 xff1a home xx xx ws srcA package src db hpp 13 26 fatal error
  • kubernetes入门实践

    k8s中文文档 k8s概念比较多 xff0c 有什么概念的疑惑的推荐看k8s中文文档 me的环境 操作系统 xff1a centos7docker xff1a 1 12 6 环境跟me的不一致 xff1f 不要慌 xff0c 基本大部分操作
  • vscode修改主题颜色(背景颜色)的快捷方式

    当周围强光比较耀眼时 xff0c 如何快速切换vscode的 主题颜色 xff0c 第一步 xff1a 同时按下Ctrl 43 K xff1b 第二步 xff1a 同时按下Ctrl 43 T xff1b 然后弹出多个系统自带的主题 xff0
  • 【C/C++】实型变量

    实型变量的分类 单精度 float 双精度 double 长双精度 long double 实型数据的舍入误差 由于实型变量是由有限的存储单元 组成的 xff0c 因此能提供的有效数字总是有限的 1 include lt stdio h g
  • 使用linux4.15内核lts,Ubuntu 18.04 LTS发布: 采用Linux 4.15内核

    原标题 xff1a Ubuntu 18 04 LTS发布 xff1a 采用Linux 4 15内核 导读4月27日消息 Canonical于伦敦时间26日正式发布了Ubuntu 18 04 LTS版 xff0c Canonical的CEO称
  • c语言malloc struct,使用malloc()函数创建结构体

    malloc 可用来为结构体分配存储空间 结构体的大小通过使用sizeof运算符来确定 示例代码 include include include int main struct Product char symbol 5 int quant
  • VirtualBox的快照功能

    VirtualBox是非常好用的一个虚拟机软件 xff0c 无论是性能还是易用性不比商用的Vmware差 VirtualBox最初是Sun公司的产品 xff0c 由于Sun被Oracle收购 xff0c 现在也归Oracle了 除了虚拟机的
  • 算法:关于生成抽样随机数的这些算法

    概述 xff1a 这里你是不是会说 xff0c 生成随机数有什么难的 xff1f 不就是直接使用Java封装好了的random就行了么 xff1f 当然对于一般情况下是OK的 xff0c 而且本文要说明的这些算法也是基于这个random库函
  • 如何在Ubuntu上搭建WordPress网站,并公网可访问 12-17

    系列文章 如何在Ubuntu上搭建WordPress网站 xff0c 并公网可访问 1 17如何在Ubuntu上搭建WordPress网站 xff0c 并公网可访问 2 17如何在Ubuntu上搭建WordPress网站 xff0c 并公网
  • 琼瑶评价

    作者 xff1a 李小喵 链接 xff1a https www zhihu com question 327292932 answer 712018512 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非
  • 【】论晚睡晚起的危害

    早睡早起 xff0c 按时睡觉按时起床 xff0c 在生活安排 xff0c 计划执行中扮演着至关重要的角色 晚睡晚起有五大害处 xff1a 1 xff09 晚睡晚起往往睡眠质量不佳 xff0c 睡眠时间比计划延长 由此导致白天时间不够 xf
  • C++学习——数组的替代品vector

    模板类vector 模板类vector类似于string类 xff0c 也是一种动态数组 您可以在运行阶段设置vector对象的长度 xff0c 可在末尾附加新数据 xff0c 还可在中间插入新数据 基本上 xff0c 它是使用new创建动
  • 磁盘结构损坏且无法读取

    以下纯数个人见解 如有疑问请留言 xff0c 共同讨论 造成这个问题的原因完全是由于BT造成的 或者是这一类BTB类的软件 大家有兴趣的朋友 可以仔细注意一下 xff0c 凡是自己常用BT的 xff0c 我估计大多都会发生这个问题 现在我要
  • matlab中设置colorbar为几种规定颜色

    我们可以通过修改colormap的值来达到这种目的 一般来说colormap的值是64 3的矩阵 xff0c 64代表64种颜色 xff0c 3列是这种颜色的RGB值 xff0c 不过归一化了 如果你想将colorbar颜色设成6种 xff
  • docker pull报错failed to register layer: Error processing tar file(exit status 1): open permission de...

    近来在一个云主机上操作docker pull xff0c 报错如下 xff1a failed to register layer Error processing tar file exit status 1 open etc init d
  • echarts 图例显示到右边

    原 xff1a legend data 39 同龄普通孩子 39 39 已具备技能 39 39 已泛化技能 39 39 已掌握技能 39 39 学习中 39 改 xff1a legend data 39 同龄普通孩子 39 39 已具备技能
  • PX4的启动脚本

    以前STM32的PX4的时候 xff0c 启动脚本是工程的ROMFS px4fmu commom init d里面的rcs里面 在高通平台里面 xff0c 启动脚本是在工程的posix configs eagle flight 里面的px4
  • 如何在Ubuntu上搭建WordPress网站,并公网可访问 17-17

    系列文章 如何在Ubuntu上搭建WordPress网站 xff0c 并公网可访问 1 17如何在Ubuntu上搭建WordPress网站 xff0c 并公网可访问 2 17如何在Ubuntu上搭建WordPress网站 xff0c 并公网
  • 《深入理解Linux内核3rd》学习笔记——进程切换(上):相关知识

    进程切换 xff08 process switch xff09 xff0c 作为抢占式多任务OS中重要的一个功能 xff0c 其实质就是OS内核挂起正在运行的进程A xff0c 然后将先前被挂起的另一个进程B恢复运行 硬件上下文 每个进程都
  • Windows命令查看文件MD5

    certutil hashfile filename MD5 certutil hashfile filename SHA1 certutil hashfile filename SHA256 转载于 https www cnblogs c

随机推荐