Docker(狂神)

news2024/11/17 5:39:06

Docker概述

Docker为什么出现?

一款产品:开发,上线,两套环境,应用环境,应用配置

开发,运维

环境配置十分麻烦,每一个机器都要部署环境,费时费力。

发布一个项目,(jar+Redis,MySQL,jdk,ES),项目能不能都带上环境安装打包

在服务器配置一个应用的环境,配置超麻烦,不能够跨平台

Window,最后发布到Linux,环境有天壤之别

传统:开发jar,运维来做

现在:开发打包部署上线,一套流程做完


Docker给以上的问题,提出了解决方案

java --- jar(环境)--- 打包项目带上环境(镜像)--- (Docker仓库:商店)--- 下载发布的镜像 --- 直接运行即可!

Docker的思想就来自于集装箱

JRE --- 多个应用(端口冲突)--- 原来都是交叉的

隔离:Docker核心思想!打包装箱!每个箱子是互相隔离的。

Docker通过隔离机制,可以将服务器利用到极致

本质:所有的技术都是因为出现了一些问题,我们需要去解决,才去学习。


Docker的历史

Docker为什么这么火?十分轻巧!

在容器技术出来之前,我们都是使用虚拟机技术

虚拟机是虚拟化技术,Docker容器技术,也是一种虚拟化技术

虚拟机:在window中装一个Vmware,通过这个软件我们可以虚拟出来一台或者多台电脑,笨重

Vmware:Linux centos原生镜像(一个电脑),隔离需要开启多个虚拟机,几个G,几分钟

Docker:隔离,镜像(最核心的环境 jdk,mysqll)十分小巧,运行镜像就可以了,几个M,秒级启动


聊聊Docker

Docker是基于Go语言开发的!开源项目!

官网:Docker: Accelerated, Containerized Application Development

文档地址:Docker Documentation | Docker Documentation

 仓库地址:Docker Hub


 Docker能干嘛

之前的虚拟机技术

虚拟机技术缺点:

1.资源占用十分多

2.冗余步骤多

3.启动很慢 

 容器化技术

容器化技术不是模拟的一个完整的操作系统

 比较Docker和虚拟机技术的不同:

  • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
  • 容器内的应用直接运行在宿主机的内核,容器是没有自己的内核的,也没有虚拟硬件,所以轻便
  • 每个容器间互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。

DevOps(开发,运维)

应用更快速的交付和部署

传统:一堆帮助文档,安装程序

Docker:打包镜像发布测试,一件运行

更便捷的升级和扩缩容

使用了Docker之后,部署应用和搭积木一样

项目打包为一个镜像,扩展服务器A ,服务器B

更简单的系统运维

在容器之后,我们的开发,测试环境都是高度一致的

更高效的计算资源利用

Docker是内核级别的虚拟化,在一个物理机上可以运行很多容器实例,服务器的性能可以被压榨到极致


Docker基本组成

镜像(image):

docker镜像就好比是一个模板,可以通过这个模板来创建容器服务

tomcat镜像 ==> run ==> tomcat01容器(提供服务器),

通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。

容器(container):

Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。

启动,停止,删除,基本命令!

目前就可以把这个容器理解为就是一个简易的linux系统

仓库(repository): 

仓库就是存放镜像的地方!

仓库分为公有仓库和私有仓库!

Docker Hub(默认是国外的)

阿里云...都有容器服务器(配置镜像加速)


安装Docker

环境准备

 1.需要一点点的Linux的基础

2.CentOS

3.shell远程连接服务器进行操作

环境查看

#系统内核时3.10以上的
[root@localhost /]# uname -r
3.10.0-957.el7.x86_64
#系统版本
[root@localhost /]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

安装

帮助文档:

#1.卸载旧的版本
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

#2.需要的安装包
yum install -y yum-utils

#3.设置镜像的仓库
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo#默认是从国外的!

yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#推荐使用阿里云的,十分的快

#更新yum软件包索引
yum makecache fast

#4.安装docker docker-ce社区版 ee企业版
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

#5.启动docker
systemctl start docker

#6.查看docker版本,是否启动成功
docker version

#7.启动hello-world镜像
docker run hello-world

#8.查看hello-world镜像
docker images

#9.docker run hello-world
docker run hello-world

#卸载docker
#1.卸载依赖
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin

#2.删除资源
#/var/lib/docker docker的默认工作路径
rm -rf /var/lib/docker

阿里云镜像加速

1.登录阿里云找到容器服务

2.找到镜像加速地址

 3.配置使用

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://6a7n8bhy.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

 回顾HelloWorld流程

 


底层原理

Docker是怎么工作的?

Docker是一个Client - Server结构的系统,Docker的守护进程在主机上,通过Socke从客户端访问!

DockerServer接收到Docker-Client的指令,就会执行这个命令

 Docker为什么比VM快?

1.Docker有着比虚拟机更少的抽象层。

2.Docker利用的是宿主机的内核,vm需要是Guest OS。

所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统,避免引导操作。虚拟机是加载GuestOS,分钟级别的,而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级。


Docker的常用命令

帮助命令

docker version #显示docker的版本信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help #帮助命令

帮助文档地址:Reference documentation | Docker Documentation

镜像命令

docker images 查看所有本地的主机上的镜像

[root@localhost /]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   13 months ago   13.3kB

#解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
CREATED 镜像的创建时间
SIZE 镜像的大小

#可选项
Options:
  -a, --all             # 列出所有镜像
  -q, --quiet           # 只显示镜像的id

docker search 镜像名 搜索镜像

[root@localhost ~]# docker search mysql
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                           MySQL is a widely used, open-source relation…   13472     [OK]       
mariadb                         MariaDB Server is a high performing open sou…   5142      [OK]       
phpmyadmin                      phpMyAdmin - A web interface for MySQL and M…   689       [OK]       
percona                         Percona Server is a fork of the MySQL relati…   593       [OK]       
bitnami/mysql                   Bitnami MySQL Docker Image                      79                   [OK]


#可选项,通过搜索来过滤
--filter=STARS=3000 #搜索出来的镜像就是STARS大于3000的

[root@localhost ~]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   13472     [OK]       
mariadb   MariaDB Server is a high performing open sou…   5142      [OK] 

docker pull 镜像名[:tag]下载镜像

#下载镜像 docker pull 镜像名[:tag]
[root@localhost ~]# docker pull mysql
Using default tag: latest #如果不写 tag,默认就是latest
latest: Pulling from library/mysql
72a69066d2fe: Pull complete  #分层下载,docker image的核心,联合文件系统
93619dbc5b36: Pull complete 
99da31dd6142: Pull complete 
626033c43d70: Pull complete 
37d5d7efb64e: Pull complete 
ac563158d721: Pull complete 
d2ba16033dad: Pull complete 
688ba7d5c01a: Pull complete 
00e060b6d11d: Pull complete 
1c04857f594f: Pull complete 
4d7cfa90e6ea: Pull complete 
e0431212d27d: Pull complete 
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709 #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest #真实地址

#等价命令
docker pull mysql
docker pull docker.io/library/mysql:latest

#指定版本下载
[root@localhost ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
72a69066d2fe: Already exists 
93619dbc5b36: Already exists 
99da31dd6142: Already exists 
626033c43d70: Already exists 
37d5d7efb64e: Already exists 
ac563158d721: Already exists 
d2ba16033dad: Already exists 
0ceb82207cd7: Pull complete 
37f2405cae96: Pull complete 
e2482e017e53: Pull complete 
70deed891d42: Pull complete 
Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

 docker rmi  -f  镜像id/镜像名  删除镜像

[root@localhost ~]# docker rmi -f 镜像id #删除指定的镜像

[root@localhost ~]# docker rmi -f 镜像id 镜像id 镜像id #删除多个镜像
 
[root@localhost ~]# docker rmi -f $(docker images -aq) #删除全部的容器

容器命令

说明:有了镜像才可以创建容器,linux,下载一个centos镜像测试学习

docker pull centos

新建容器并启动

docker run [可选参数] image

#参数说明
--name="Name" 容器名字 tomcat01 tomcat02,用来区分容i去
-d  后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p  指定容器的端口 -p 8080:8080
  -p ip:主机端口:容器端口
  -p 主机端口:容器端口(常用)
  -p 容器端口
-p 随机指定端口

#测试,启动并进入容器
[root@localhost ~]# docker run -it centos /bin/bash
[root@8bfe65458325 /]# ls #查看容器内的centos,基础版本,
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

# 从容器中退回主机
[root@a84b2702bfe0 /]# exit
exit
[root@localhost /]# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

列出所有运行的容器

docker ps 命令
     #列出当前正在运行的容器
-a   #列出当前正在运行的容器+历史运行过的容器
-n=? #显示最近创建的容器
-q   #只显示容器的编号 

[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED             STATUS                         PORTS     NAMES
a84b2702bfe0   centos         "/bin/bash"   8 minutes ago       Exited (0) 8 minutes ago                 great_elgamal

退出容器

exit #直接容器停止并退出
ctrl + p + q #容器不停止退出

删除容器

docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有的容器

启动和停止容器的操作

docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器

常用其他命令

后台启动容器

docker run -d 镜像名

docker run -d centos

#问题docker ps,发现centos停止了

#常见的坑,docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止

#容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

查看日志

docker logs -tf --tail 容器id

#自己编写一段shell脚本
[root@localhost bin]# docker run -d centos /bin/sh -c "while true;do echo kuangshen;sleep 1;done"

#docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
8d2913187b91   centos    "/bin/sh -c 'while t…"   14 seconds ago   Up 14 seconds             eloquent_shamir

#显示日志
-tf #显示日志
--tail number #显示日志条数
[root@localhost bin]# docker logs -tf --tail 10 8d2913187b91

查看容器中进程信息 ps

docker top 容器id

#命令docker top 容器id
[root@localhost /]# docker top 8d2913187b91
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                32058               32037               0                   01:14               ?                   00:00:00            /bin/sh -c while true;do echo kuangshen;sleep 1;done
root                40447               32058               0                   01:23               ?                   00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1

查看镜像的元数据

docker inspect 镜像id

[root@localhost /]# docker inspect 5d0da3dc9764
[
    {
        "Id": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6",
        "RepoTags": [
            "centos:latest"
        ],
        "RepoDigests": [
            "centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2021-09-15T18:20:05.184694267Z",
        "Container": "9bf8a9e2ddff4c0d76a587c40239679f29c863a967f23abf7a5babb6c2121bf1",
        "ContainerConfig": {
            "Hostname": "9bf8a9e2ddff",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"/bin/bash\"]"
            ],
            "Image": "sha256:f5b050f177fd426be8fe998a8ecf3fb1858d7e26dff4080b29a327d1bd5ba422",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.build-date": "20210915",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS"
            }
        },
        "DockerVersion": "20.10.7",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "Image": "sha256:f5b050f177fd426be8fe998a8ecf3fb1858d7e26dff4080b29a327d1bd5ba422",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.build-date": "20210915",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS"
            }
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 231268856,
        "VirtualSize": 231268856,
        "GraphDriver": {
            "Data": {
                "MergedDir": "/var/lib/docker/overlay2/9372640e37b7350657b835f7866b3ca75df7ea4caabb33ea88194e057e899bd9/merged",
                "UpperDir": "/var/lib/docker/overlay2/9372640e37b7350657b835f7866b3ca75df7ea4caabb33ea88194e057e899bd9/diff",
                "WorkDir": "/var/lib/docker/overlay2/9372640e37b7350657b835f7866b3ca75df7ea4caabb33ea88194e057e899bd9/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:74ddd0ec08fa43d09f32636ba91a0a3053b02cb4627c35051aff89f853606b59"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

 进入当前正在运行的容器

docker exec -it 容器id bashShell

[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
8d2913187b91   centos    "/bin/sh -c 'while t…"   30 minutes ago   Up 30 minutes             eloquent_shamir
[root@localhost /]# docker exec -it 8d2913187b91 /bin/bash
[root@8d2913187b91 /]# ls
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@8d2913187b91 /]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 06:14 ?        00:00:00 /bin/sh -c while true;do echo kuangshen;sleep 1;don
root       1877      0  0 06:45 pts/0    00:00:00 /bin/bash
root       1922      1  0 06:46 ?        00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /
root       1923   1877  0 06:46 pts/0    00:00:00 ps -ef

docker attach 容器id

[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
8d2913187b91   centos    "/bin/sh -c 'while t…"   40 minutes ago   Up 40 minutes             eloquent_shamir
[root@localhost /]# docker attach 8d2913187b91
kuangshen
kuangshen
kuangshen

docker exec 进入容器后开启一个新的终端,可以在里面操作(常用)

docker attach 进入容器正在执行的终端,不不会启动新的进程

从容器内拷贝文件到主机上

docker cp 容器id:容器内路径 目的主机路径

拷贝是一个手动过程,未来使用-v数据卷的技术,可以实现同步

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

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

相关文章

数据流与重定向,vim练习,grep过滤练习,cut练习

今日作业&#xff1a; 1、重定向练习&#xff1a;将根目录下的文件的文件名写入/test/file文件中&#xff08;先切换到根目录&#xff0c;再查看根目录下的文件名&#xff0c;进行数据重定向&#xff0c;最后查看/test/file文件&#xff09; 2、vim命令练习&#xff1a;将/root…

景区讲解小程序,扫码轻松获取多语言讲解服务

中国旅游研究院连续40个季度监测&#xff0c;提取了游客对景区的五大负面评价关键词。 分别是&#xff1a; 1、空间拥堵 2、体验感下降 3、人性化服务不足 4、纪念品和旅游购物同质化 5、娱乐项目不够丰富 这些评价词也为景区的升级转型、服务提升指明了方向。 其中“体验感下…

RESTful+统一响应体+API自动文档的SprinBoot项目

一、项目要求 实验环境&#xff1a;IdeamysqlJDKTomcatMaven将上一周个人作业用 RESTful 接口实现&#xff1b;&#xff08;上周的SpringBootMybatisCRUD项目&#xff09;配置统一响应体&#xff1b;配置Swagger&#xff0c;生成API自动文档&#xff1b;对 RESTful 接口用Post…

同态加密开源框架整理

开放隐私计算 2022-11-16 19:17 发表于浙江 以下文章来源于隐私计算研习社 &#xff0c;作者庄智廉 隐私计算研习社. 开放隐私计算社区 开放隐私计算 开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神&#xff0c;专注于隐私计算行业…

2022年数维杯国际赛D题 极端天气损失评估与应对策略

2022年7月至8月&#xff0c;中国南方许多城市经历了多日的炎热天气&#xff0c;而北方部分地区也出现了大 规模的强降水。此外&#xff0c;许多欧洲国家也经历了历史上罕见的干旱灾害。无论是南部的高温天气 &#xff0c;北方的强降水&#xff0c;还是欧洲的干旱天气&#x…

算法部署经验实操:手把手教你掌握Atlas移植和算法推理

华为Atlas智能边缘解决方案已广泛应用于安防、交通、社区、商超等复杂环境区域的AI需求&#xff0c;在算法部署落地过程中&#xff0c;具备算法异构能力已经成为算法开发者的加分项。 本次特训营由极市平台、昇腾社区联合主办&#xff0c;启用行业专家导师结合算法实际落地应用…

Jekyll 选项(options)和子命令(subcommand)小手册

建议直接通过侧边栏进行跳转查询。 本文将列出并介绍一些常用的 Jekyll 的命令选项&#xff08;options&#xff09;和子命令&#xff08;subcommand&#xff09;&#xff0c;这样方便快速查看。如果你想找的这里没有列出&#xff0c;可以查看官方文档 《Configuration Option…

JPA Buddy指南

1. 概述 JPA Buddy是一个广泛使用的IntelliJ IDEA插件&#xff0c;面向使用JPA数据模型和相关技术&#xff08;如Spring DataJPA&#xff0c;DB版本控制工具&#xff08;Flyway&#xff0c;Liquibase&#xff09;&#xff0c;MapStruct等&#xff09;的新手和有经验的开发人员。…

猿创征文|C++软件开发值得推荐的十大高效软件分析工具

目录 1、概述 2、高效软件工具介绍 2.1、窗口查看工具SPY 2.2、Dependency Walker 2.3、剪切板查看工具Clipbrd 2.4、GDI对象查看工具GDIView 2.5、Process Explorer 2.6、Prcoess Monitor 2.7、API Monitor 2.8、调试器Windbg 2.9、反汇编工具IDA 2.10、抓包工具…

【毕业设计】深度学习试卷批改系统 - opencv python 机器视觉

文章目录0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现6 算法测试7 系统实现8 最后0 简介…

使用react开发谷歌插件

前言 自己搭架子确实不会&#xff0c;好在github上有已经搭好的架子&#xff0c;具体见&#xff1a;https://github.com/satendra02/react-chrome-extension 项目是基于react16和scss的还是挺不错的。 不过这个是基于v2版本的&#xff0c;现在已经是v3版本了&#xff0c;我们…

【面试题】近期学员被问最多的真实面试题记录(如何分配测试任务?)

问题均由朋友/粉丝提供的真实面试记录&#xff0c;帮大家解答&#xff0c;我义不容辞&#xff0c;但有些问题如果回答的不够仔细和正确&#xff0c;也希望大家能客观的指出改正&#xff0c;轻喷。 问题&#xff1a;发现了线上bug&#xff0c;作为测试&#xff0c;你是如何发挥…

net基于asp.net的二手商品的交易系统-二手网站-计算机毕业设计

项目介绍 基于ASP.NET的二手商品的交易系统是针对目前二手商品交易的实际需求,从实际工作出发,对过去的二手商品交易平台存在的问题进行分析,完善用户的使用体会。采用计算机系统来管理信息,取代人工管理模式,查询便利,信息准确率高,节省了开支,提高了工作的效率。 本系统结合计…

GitHub神坛变动,10W字Spring Cloud Alibaba笔记,30W星标登顶第一

Spring Cloud Alibaba是Spring Cloud下的一个子项目&#xff0c;使用 Spring Cloud Alibaba&#xff0c;只需添加一些注解和少量配置&#xff0c;即可将 Spring Cloud 应用连接到 Alibaba 的分布式解决方案中&#xff0c;并使用 Alibaba 中间件构建分布式应用系统。 ​为了帮助…

高手PM控制项目范围的流程和方法!

​项目的范围、成本与质量相互制约。 如果不能使用合理的手段和方法确定项目范围&#xff0c;不能在项目过程中有效的控制范围&#xff0c;不能让项目范围在各相关方之间达成一致&#xff0c;那么会对项目造成严重的伤害。 如无情消耗项目资源&#xff0c;影响范围内工作的有…

手机怎么把照片转JPG格式?这三种手机小技巧需要知道

怎么用手机把照片的格式转换成JPG格式呢&#xff1f;大家在日常中使用的照片&#xff0c;有的格式可能连自己都不清楚&#xff0c;只有在特定格式的情况下才会才会发现自己的图片格式需要转换才行&#xff0c;最常使用到的就是将照片转换成JPG格式了&#xff0c;那么我们怎么用…

最新解决谷歌翻译无法使用的教程

谷歌翻译无法使用是谷歌官方关闭了中国地区翻译服务。 废话不多说直接上教程&#xff0c;本质就是通过修改hosts文件让translate.googleapis.com域名的IP解析到国内的谷歌服务器IP&#xff0c;网上大部分的教程也是如此。 但是有个问题就是这个IP不稳定可能用了几天就不用了&am…

web前端期末大作业:青岛旅游网页主题网站设计——青岛民俗4页 HTML+CSS 民俗网页设计与制作 web网页设计实例作业 html实训大作业

&#x1f468;‍&#x1f393;静态网站的编写主要是用 HTML DⅣV CSSJS等来完成页面的排版设计&#x1f469;‍&#x1f393;&#xff0c;一般的网页作业需要融入以下知识点&#xff1a;div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉…

有哪些编辑图片加文字的软件?这些软件值得收藏

大家平时在分享自己拍的照片的时候&#xff0c;会不会觉得照片有点单调&#xff0c;有些空旷呢&#xff1f;其实这时候&#xff0c;我们只需要对图片添加上一些文字描述&#xff0c;就可以大大提高图片的趣味性以及丰富图片的内容&#xff0c;并且我们也可以将这些加文字的图片…

LDO的前世今生

众所周知&#xff0c;开关电源的效率很高&#xff0c;但是输出电压有纹波&#xff0c;噪声很大&#xff0c;不能直接接入单片机控制电路中&#xff0c;而一般选择的方案都是在开关电源的输出端接一级LDO低压差线性稳压电源&#xff0c;可以保证输出到单片机中的电压很稳定&…