Docker

2023-10-26

目录

1.离线安装

1.1.下载Docker离线包

1.2.下载离线安装工具

 1.3.安装

1.4.镜像加速 

1.4.1.下面命令直接生成文件 daemon.json

1.4.2. 重新加载docker配置

1.4.3.重启docker服务:

1.5. 查看docker的基本信息和测试安装结果

2.在线安装

2.1.安装一组工具

2.2.设置 yum 仓库地址

2.3.更新 yum 缓存

2.4.安装新版 docker

3.镜像 

3.1.下载镜像(指定版本)

3.2.查看镜像列表

3.3.给镜像添加名称

3.4. 查看指定镜像

3.5.删除镜像

3.6.导入导出镜像

.导出镜像并压缩到压缩文件

.导入镜像 

 4.容器

4.1.从镜像运行启动容器

从 tomcat 镜像启动容器:

-d 后台运行Tomcat容器 

 docker exec 进入容器,运行指定命令

4.2.查看容器

.查看容器的日志:

 .查看容器的创建详细历史信息

4.3.ENTRYPOINT 和 CMD 设置容器启动时的默认执行命令

4.3.1.只设置 CMD 来执行 ls -a -l: 

4.3.2.用 ENTRYPOINT 和 CMD 两个一起设置来执行 ls -a -l:

4.4.启动容器时覆盖 ENTRYPOINT 和 CMD 

 .覆盖 CMD:

.覆盖 ENTRYPOINT:

4.5.--name 和 --restart=always

4.6.--rm 和 docker cp 

4.7.删除容器

5.文件挂载 -v

5.1.目录挂载

5.2.数据卷挂载

5.3.删除数据卷 

 6.网络

6.1.端口映射 -p参数

6.2.虚拟网络

7.构建镜像

准备必要的文件

Dockerfile

执行构建

启动容器


1.离线安装

1.1.下载Docker离线包

https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz

在这里可以选择自己需要的版本进行下载:
Index of linux/static/stable/

1.2.下载离线安装工具

GitHub - Jrohy/docker-install: auto install latest docker by online/offline (binary install)

按图示下载安装工具:

在这里插入图片描述

 1.3.安装

将前面下载的以下文件放入服务器的 /root/docker-install 文件夹下:

- [docker-install]
    - docker-20.10.6.tgz
    - install.sh
    - docker.bash

执行安装:

# 进入 docker-install 文件夹
cd docker-install

# 为 docker-install 添加执行权限
chmod +x install.sh

# 安装
./install.sh -f docker-20.10.6.tgz

1.4.镜像加速 

修改配置文件 /etc/docker/daemon.json

1.4.1.下面命令直接生成文件 daemon.json

cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF
 

1.4.2. 重新加载docker配置

sudo systemctl daemon-reload

1.4.3.重启docker服务:

#重启docker服务
sudo systemctl restart docker

1.5. 查看docker的基本信息和测试安装结果

docker info

docker run hello-world

2.在线安装

2022年1月31日起,CentOS开发团队将会移除官方镜像源上关于CentOS 8所有的包,届时如果在CentOS 8上再次使用yum命令安装包则会报以下错误:

下载元数据失败:Cannot prepare internal mirrorlist: No URLs in mirrorlis

解决思路
如果还需要继续使用Centos 8,则需更换下载源

将下载源更换为阿里源等镜像源,可以具体搜索操作步骤
或直接运行命令

sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
sudo sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
 

# 安装正确的源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

# 生成缓存
yum makecache

2.1.安装一组工具

sudo yum install -y yum-utils 

2.2.设置 yum 仓库地址

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
 

sudo yum-config-manager \
     --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 

2.3.更新 yum 缓存

sudo yum makecache fast #yum 是包管理器
 

2.4.安装新版 docker

sudo yum install -y docker-ce docker-ce-cli containerd.io 

3.镜像 

3.1.下载镜像(指定版本)

# 下载 redis 镜像, 默认下载 redis:latest
docker pull redis:5.0.12

3.2.查看镜像列表

docker images

3.3.给镜像添加名称

# 镜像可以起另一个名称,名称格式: repository:tag
# 默认的 tag 是 latest
docker tag redis:5.0.12 tedu/redis:v5012

3.4. 查看指定镜像

# 可以看到同一个镜像(ID相同)可以有多个名称
docker images | grep redis

3.5.删除镜像

镜像的名称可以被删除,只有唯一的一个名称时会删除镜像:

docker rmi redis:5.0.12

3.6.导入导出镜像

.导出镜像并压缩到压缩文件

# 把两个镜像 redis:latest 和 centos:8 导出,并压缩到 imgs.gz
docker save redis centos:8 | gzip > imgs.gz

.导入镜像 

docker load -i imgs.gz

 4.容器

4.1.从镜像运行启动容器

从一个镜像可以运行启动一个或多个容器。

所谓容器,我们可以理解为是一个虚拟的计算机,其中运行着操作系统,操作系统中运行着我们部署的应用。

从 tomcat 镜像启动容器:

docker run tomcat

-d 后台运行Tomcat容器 

docker run -d tomcat

 docker exec 进入容器,运行指定命令

绝大多数情况下一个容器中只运行一个应用。

容器中也允许运行启动多个应用,可以进入已经启动的容器, 在里面运行启动其他应用:

# 进入容器,运行指定的命令
docker exec -it 4d3 pwd
docker exec -it 4d3 touch f1.txt
docker exec -it 4d3 ls -l

# 启动 top 查看进程列表
# ctrl+c 可以退出top
docker exec -it 4d3 top

# 启动bash命令行
# exit 可以退出bash
docker exec -it 4d3 bash

4.2.查看容器

# 只查看运行的容器
docker ps 

# 查看所有容器,包括已停止的容器
docker ps -a

# 仅列出容器的 id
docker ps -aq

.查看容器的日志:

格式:docker logs  名称/id

可以使用容器的名称或 id,使用id是允许至少写三位,能与其他id区分即可

docker logs 4d3

 .查看容器的创建详细历史信息

docker history 容器名

4.3.ENTRYPOINT 和 CMD 设置容器启动时的默认执行命令

这两向设置都是用来设置容器中运行的命令。

4.3.1.只设置 CMD 来执行 ls -a -l: 

CMD ["ls", "-a", "-l"]

4.3.2.用 ENTRYPOINT 和 CMD 两个一起设置来执行 ls -a -l

两项一起设置时,会把两项设置的内容连接起来作为一个完整的命令

ENTRYPOINT ["ls"]
CMD ["-a", "-l"]

4.4.启动容器时覆盖 ENTRYPOINT 和 CMD 

 .覆盖 CMD

以 tomcat 镜像为例,镜像中设置的默认命令是 catalina.sh run,可以任意指定命令覆盖这个默认命令,这里执行 ls -a -l 来测试:

docker run tomcat ls -a -l

.覆盖 ENTRYPOINT

--entrypoint设置运行的命令,不许写在镜像名称 tomcat 的前面。注意,这里不能添加命令的参数;

镜像名称 tomcat 后面的内容会覆盖 CMD

docker run --entrypoint ls tomcat -a -l

4.5.--name 和 --restart=always

--name
每个启动的容器都可以指定一个名称,方便使用名称来操作容器。

--restart=always
docker系统服务重启,或者操作系统重启,容器可以随系统自动启动。

# cat1容器可以随系统启动
docker run -d \
--name cat1 \
--restart=always \
tomcat

# cat2系统重启后默认是关闭状态,不会自动启动
docker run -d \
--name cat2 \
tomcat

# 查看容器
docker logs cat1

docker inspect cat1

# 重启docker系统服务
systemctl restart docker

# 查看容器,可以看到 cat1 自动重启了,而 cat2 处于关闭状态
docker ps -a

4.6.--rm 和 docker cp 

         

--rm:
有时候我们会临时使用一个容器之后这个容器就不再使用,添加 --rm 参数可以在容器停止时自动删除容器

docker cp:
在容器和宿主机之间复制文件

下面来看一个实际的例子,这个例子中我们从 tomcat 的一个临时容器复制配置文件 server.xml 到宿主机,然后在 server.xml 中修改端口号,把 8080 改成 80。
 

# 启动一个临时容器
docker run -d \
--rm \
--name tmp \
tomcat

# 把 tomcat 的 server.xml 复制到宿主机的 /root/ 目录下
docker cp tmp:/usr/local/tomcat/conf/server.xml  /root/

# 停止临时容器,会自动删除
docker stop tmp

docker ps -a

# 修改 server.xml 中的8080端口,改成80
vim server.xml

# -v 把宿主机路径挂载到容器的一个路径
# 挂载的路径可以是文件,也可以是文件夹
# 这里把修改过的 server.xml 挂载到新启动的容器中
docker run -d \
--name cat2 \
-v /root/server.xml:/usr/local/tomcat/conf/server.xml \
tomcat

# 查看启动日志,确认使用 80 端口启动
docker logs cat2

4.7.删除容器

docker rm 容器id

#删除所有容器

docker rm -f $(docker ps -aq)

5.文件挂载 -v

用 -v 参数,他可以将宿主机的路径挂载到容器指定路径,通过 -v 参数可以挂载文件、目录和数据卷

5.1.目录挂载

# 清理容器
docker rm -f $(docker ps -aq)

# -v 宿主机路径:容器路径
# 挂载的可以是文件,也可以是文件夹
# -v 可以在宿主机自动新建目录
docker run -d \
--name cat1 \
-v /usr/app:/opt/app \
tomcat

# 进入容器,在 /opt/app 下新建文件 f1.txt
docker exec -it cat1 bash

touch /opt/app/f1.txt

# 退出容器的命令行
exit

# 访问宿主机的文件夹
cd /usr/app
ls

5.2.数据卷挂载

# 新建数据卷
docker volume create my-vol

# 查看 my-vol 数据卷的信息
docker volume ls

# /var/lib/docker/volumes/my-vol/_data
docker inspect my-vol

# 挂载 my-vol 数据卷到容器的 /opt/app 路径
docker run -d \
--name cat2 \
-v my-vol:/opt/app \
tomcat

# 在容器的 /opt/app 下新建 f2.txt
docker exec -it cat2 bash

touch /opt/app/f2.txt

# 退出容器的命令行
exit

# 进入 my-vol 数据卷的真实目录,查看 f2.txt
cd /var/lib/docker/volumes/my-vol/_data

ls

5.3.删除数据卷 

docker volume rm my-vol

 6.网络

6.1.端口映射 -p参数

客户端要访问宿主机内部运行的容器时,可以在宿主机打开一个端口,当客户单访问这个端口时,可以将访问转发到内部的容器。

-p 参数:
通过 -p 参数设置,可以在宿主机上选择一个端口映射到容器的端口。

# 清理容器
docker rm -f $(docker ps -aq)

# 端口映射
# -p 宿主机端口:容器端口
docker run -d \
--name cat1 \
-p 80:8080 \
tomcat


6.2.虚拟网络

容器键互联可以使用 Docker 的虚拟网络来连接。

在 Docker 中可以创建任意多个虚拟网络,容器之间可以通过虚拟网络互联互通。创建虚拟网络时宿主机也会连接到虚拟网络。

# 新建虚拟网络 my-net
docker network create my-net

# 查看虚拟网络
docker network ls

# 查看网络描述信息
docker inspect my-net

# 查看宿主机新建的虚拟网卡
ifconfig

# 清理容器
docker rm -f $(docker ps -aq)

# 新建两个容器 cat1 和 cat2
# 连接到虚拟网络 my-net
docker run -d --name cat1 \
--net my-net \
tomcat

docker run -d --name cat2 \
--net my-net \
tomcat

# 查看两个容器的虚拟网络ip
docker inspect cat1
docker inspect cat2

# 测试网络能否互联互通
# 从宿主机ping两个容器
ping 172.18.0.2
ping 172.18.0.3

# 进入cat1,ping宿主机和cat2
docker exec -it cat1 ping 172.18.0.1
docker exec -it cat1 ping 172.18.0.3
# 从容器访问另一个容器,可以使用容器名称访问,容器内部实现了解析环境
docker exec -it cat1 ping cat2

7.构建镜像

构建镜像类似于一台电脑的装机过程,添加文件、安装软件、配置环境…

例如构建一个 tomcat 10 镜像流程,就像在一台电脑上安装配置 tomcat 环境一样:

  1. 选择基础镜像 centos:8(相当于一台新电脑,只有操作系统)
  2. 添加 jdk 和 tomcat 文件
  3. 设置环境变量
  4. 设置开机启动 tomcat

下面来演示构建 tomcat 10 镜像的过程:

准备必要的文件

jdk 和 tomcat 10 的压缩文件放入一个文件夹中,这个文件夹不应该包含其他无关文件:

[/root/tomcat/]
       - jdk-8u291-linux-x64.tar.gz
       - apache-tomcat-10.0.6.tar.gz

Dockerfile

Dockerfile 类似于一个批处理文件,用来设置镜像的构建流程

在上一步的 tomcat 文件夹下创建 Dockerfile 文件:

[/root/tomcat/]
       - jdk-8u291-linux-x64.tar.gz
       - apache-tomcat-10.0.6.tar.gz
       - Dockerfile

编辑 Dockerfile 文件

cd /root/tomcat

vim Dockerfile 

在文件中添加以下内容:

# 选择基础镜像
FROM centos:8

# jdk 和 tomcat 文件添加到镜像的 /usr/local/ 目录下
# ADD 指令会自动解压文件
ADD jdk-8u291-linux-x64.tar.gz apache-tomcat-10.0.6.tar.gz /usr/local/

# 切换到镜像中指定的文件夹下
WORKDIR /usr/local/apache-tomcat-10.0.6/

# 设置环境变量
ENV JAVA_HOME=/usr/local/jdk1.8.0_291 \
    CATALINA_HOME=/usr/local/apache-tomcat-10.0.6 \
    PATH=/usr/local/jdk1.8.0_291/bin:/usr/local/apache-tomcat-10.0.6/bin:$PATH

# EXPOSE 8080 只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
# 这个声明有两个好处:
#   1.帮助镜像使用者理解这个镜像服务的端口,以方便配置映射
#   2.在运行时使用随机端口映射时,也就是 docker run -P时,会自动随机映射 EXPOSE 的端口
EXPOSE 8080

# 设置启动命令
CMD ["catalina.sh", "run"]

Dockerfile 指令参考手册:
Dockerfile reference | Docker Documentation

执行构建

进入 tomcat 文件夹,并在当前文件夹下找到 Dockerfile 和其他需要的文件,来构建镜像:

cd /root/tomcat

# 使用当前文件夹中的 Dockerfile 文件进行构建
# 新构建的镜像命名为 tomcat:10
docker build -t tomcat:10 ./

查看构建结果:

docker images

docker history tomcat:10

docker inspect tomcat:10

启动容器

docker run -d --name cat1 -p 8080:8080 tomcat:10

docker ps -a

docker logs cat1

浏览器访问测试:
http://192.168.64.150:8080 

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

Docker 的相关文章

  • 如何从 kubernetes 集群内部访问主机的 localhost

    在此应用程序中 nodejs pod 在 kubernetes 内部运行 而 mongodb 本身作为 localhost 位于主机外部 这确实不是一个好的设计 但它只适用于开发环境 在生产中 将有一个单独的 mongodb 服务器 因为这
  • Docker Engine可以并行启动容器吗

    如果我有并行发出 docker run 命令的脚本 则 docker 引擎似乎会串行处理这些命令 由于使用 docker run 运行最小的容器映像需要大约 100 毫秒才能启动 这是否意味着并行发出命令来运行 1000 个容器将花费 do
  • 如何在 Docker 容器中运行 Nginx 而不停止?

    我在 Docker 容器上安装了 Nginx 并尝试像这样运行它 docker run i t p 80 80 mydockerimage usr sbin nginx 问题是 Nginx 的工作方式是 初始进程立即生成一个 Nginx 主
  • 如何使用 TensorFlow 设置 Udacity 深度学习课程的学习环境 (Windows)

    相信很多对深度学习感兴趣的人都听说过这门课程 https www udacity com course deep learning ud730 https www udacity com course deep learning ud730
  • 可以从curl访问docker服务,但不能从postman/chrome访问docker服务

    我正在做 docker 入门指南 https docs docker com get started part3 recap and cheat sheet optional https docs docker com get starte
  • 如何使用 compose 将 docker 卷安装到我的 docker 项目中?

    我有一个 Maven 项目 我正在 Docker 内运行 Maven 构建 但问题是 每次运行它时 它都会下载所有 Maven 依赖项 并且不会缓存任何 Maven 下载 我找到了一些解决方法 将本地 m2 文件夹挂载到 Docker 容器
  • 使用“容器ip”连接到docker容器

    我在 mac 上运行 docker 我想使用 docker 容器的 ip 不是虚拟机的 ip 连接到它 原因是 Spark 驱动程序将自身注册到容器 IP 172 17 0 2 并且从 mac 运行的客户端尝试连接到该地址 有没有办法从 m
  • docker asp.net core 容器在 mysql 容器之后启动

    我有一个带有 asp net core 的 docker 容器和一个带有 mysql 的容器 现在我需要等待 mysql 容器启动并准备好 两个容器都通过 docker compose yml 启动 就像是https github com
  • 将数据持久保存在 Oracle 数据库的 docker 卷中

    我创建了用于存储我的应用程序数据库数据的卷 docker volume create dbvolume 然后我启动了带有 Oracle XE 11g 数据库映像和数据卷的 docker 容器 docker run name OracleXE
  • 从头开始使用映像部署无法启动

    我正在使用以下内容构建图像Dockerfile FROM golang 1 19 2 bullseye as builder COPY src src WORKDIR src RUN CGO ENABLED 1 go build race
  • 如何访问docker镜像?

    我试图在不运行的情况下访问 docker 映像 我只想知道它包含什么内容以进行验证 我无法 ssh 进入容器 因为它会在一秒钟内结束 所以我需要探索图像而不是容器 或者 在完成之前是否可以访问容器 明白了 命令如下 docker run i
  • 如何在 Mac 上升级 Docker? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我尝试了 docker machine升级 并做了一些工作 但我似乎没有最新的 CLI 如果我执行 docker 版本 我会得到 Clie
  • Docker compose 绑定失败:端口已分配

    我一直在尝试将 Socketio 服务器从 EC2 转移到 Docker 我已经能够通过网络 http 客户端连接到套接字 但通过 iOS 或 Android 直接连接到套接字似乎是不可能的 我读到问题之一可能是使用 Docker 时暴露的
  • Docker 错误:无法找到包 git

    我正在使用图像nginx这是基于dockerfile ubuntu 连接到 docker 容器的 shell docker exec it
  • 在 docker windows 上运行 linux 容器

    我在 Windows 10 机器上安装了 Docker for Windows 它要求我启用 HyperV 功能 一切都安装正确并且运行良好 虽然有一件事让我大吃一惊 我实际上能够在 docker windows 上运行 Linux 容器
  • 启动 docker 容器时向主机 /etc/hosts 文件添加条目

    我希望能够将主机名添加到映射到 docker 容器的笔记本电脑 etc hosts 中 由于容器 ip 不是静态的 因此我启动 重新启动容器的每个站点都需要手动更新 etc hosts 文件 这不太实用 我正在寻找一种简单的方法来解决这个问
  • 是否可以对不同的服务使用不同的 .env?

    我遇到一种情况 最好有多个 env 文件 每个 env 文件对应 docker compose yml 中的每个服务 有什么方法可以指定要使用的不同文件名吗 这可以在个人服务层面上做到吗 我尝试使用env file不幸的是 这设置了在 Do
  • 如何在 App Engine 中灵活更改 /dev/shm 的大小

    如何更改共享内存文件夹的大小 dev shm在 App Engine 灵活应用程序中 默认情况下 它设置为 64M 太低 无法运行许多应用程序 例如 Chrome 我看不出有什么办法可以改变它 如果您有权访问 可以通过多种方法进行更改doc
  • 在 Dockerfile 中安装节点?

    我是AWS elastic beanstalk的用户 我遇到了一些问题 我想用 less node 构建我的 CSS 文件 但我不知道在使用 jenkins 构建时如何在 dockerfile 中安装节点 这是我在 docker 中使用的安
  • 使用自签名证书将本地 Docker 镜像推送到私有存储库

    我正在尝试推送图像 比如说foo bar 从我的本地 Docker 注册表到在 OpenShift 3 11 上运行的注册表 实际上迷你换档 https github com minishift minishiftv1 33 0 ba294

随机推荐

  • InnoDB undo log解析(二)

    在 上一篇中已经介绍了InnoDB undo log的组织结构 并通过一个示例并结合InnoSQL来分析insert undo log记录格式 本篇中介绍update undo log的记录格式 update undo log有以下三种类型
  • cocoeval 解析

    1 COCO目标检测比赛中的模型评价指标介绍 dulingwen的博客 CSDN博客 2 COCO目标检测测评指标 简书 1 Params类 对于COCO格式的数据检测 我们主要分为不同的IoU阈值 不同的面积范围 单张图片的最大检测数量
  • PAT 5 猴子吃桃问题(递归)

    猴子吃桃问题 15 分 一只猴子第一天摘下若干个桃子 当即吃了一半 还不过瘾 又多吃了一个 第二天早上又将剩下的桃子吃掉一半 又多吃了一个 以后每天早上都吃了前一天剩下的一半加一个 到第N天早上想再吃时 见只剩下一个桃子了 问 第一天共摘了
  • Nuxt 项目引入外部Js的正确姿势 ,问题描述:打包构建之后引入的外部 js失效,构建之后的 .nuxt 文件夹下的js文件中,引入 js 的script标签凭空消失!

    首先先说我遇到的问题描述 我是用vue nuxt项目 项目中使用了阿里播放器 于是我在vue页面中直接引入了阿里播放器的 css和js文件 然后运行没有任何问题 如下图所示 但是 当我打包以后 发现这个页面竟然报错 我打开 打包好的 nux
  • Debugger problem "The breakpoint will not currently be hit. No symbols have been loaded for this doc...

    网上收集到的相关解决办法 1st Start debugging Now select Debug gt Windows gt Modules In the modules window taht now appears check wha
  • 解决Windows缺少d3dcompiler_37.dll文件

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个d3dcompiler 37 dll文件进行安装
  • VSCode选择远程服务器的虚拟环境

    方式一 选择服务器虚拟环境conda Ctrl Shift P 选择需要使用的虚拟环境即可 方式二 选择Terminal 点击 通过命令行切换即可 参考 Work on Python in VSCode remotely over ssh
  • 不就是G2O嘛

    从零开始一起学习SLAM 理解图优化 一步步带你看懂g2o代码 SLAM的后端一般分为两种处理方法 一种是以扩展卡尔曼滤波 EKF 为代表的滤波方法 一种是以图优化为代表的非线性优化方法 不过 目前SLAM研究的主流热点几乎都是基于图优化的
  • jmeter压测实战包括cpu性能检测

    1 录制测试计划 1 打开jmeter 创建测试计划 线程组 sampler HTTP请求 监听器 查看结果树 聚合报告 2 服务器参数端口做了个参数化管理 3 对于请求数据也做一个参数化管理 4 最后运用参数化思想传参 HTTP请求 填写
  • Java程序设计——注解(Java高级应用)

    目录 一 基本注解 1 Override注解 2 Deprecated注解 3 SuppressWarnings注解 4 SafeVarargs注解 5 FunctionalInterface注解 二 定义注解 三 使用注解 四 元注解 1
  • 简单的实现页面点击切换(非路由方式)

    html import React Component from react class index extends Component constructor props super props this state curr zero
  • org.springframework.cloud:spring-cloud-starter-eureka :unknown 报错解决;

    Spring Cloud Eureka是对Netflix Eureka的二次封装 Eureka服务端 Eureka就是注册中心 同时它也是一个客户端 Eureka server Eureka服务端 同是也是Eureka Client Eur
  • CSS技巧

    CSS技巧 背景图片居中 background size cover 图片可能会被拉伸 background position center 图片尺寸不变 只是移动至正中间 button的边框 一般浏览器会给button默认边框 borde
  • 网页上ajax异步加载数据,网页的异步请求(Ajax)

    JS原生Ajax操作 XMLHttpRequest GET请求 var xmld new XMLHttpRequest xmld open GET wan php dd1 dong11 dd2 dong22 打开页面 xmld setReq
  • 如何成为优秀的管理者?(摘自《代码之道》第9章)

    婚礼 旅行和管理者之间有什么共同之处吗 跟任何一个成年人谈论这些话题 你肯定会听到一个可怕的故事 在婚礼上 那是关于喝醉的客人 糟糕的天气或者不合时宜的失言 在旅行过程中 那是关于丢失的行李 混乱的乘客或者慌乱的转机 至于管理者 那是关于你
  • Redis缓存击穿、雪崩、穿透!(超详细)

    缓存的击穿 穿透和雪崩应该是再熟悉不过的词了 也是面试常问的高频试题 不过 对于这三大缓存的问题 有很多人背过了解决方案 却少有人能把思路给理清的 而且 网络上仍然充斥着 大量不太靠谱的解决方案 难免误人子弟 我的这篇文章 则会对这三大缓存
  • mobaxterm的linux安装教程,MobaXterm详尽使用教程系列一

    常用SSH客户端介绍 SSH 为 Secure Shell 的简写 是目前较可靠 专为远程登入会话和其他网路服务提供安全性的合同 利用 SSH 协议可以有效避免远程管理过程中的信息泄漏问题 我们做估算的人 每天都须要与linux服务器打交道
  • html元素data属性设置变量,在VUE style中运用data中的变量的要领详解_WEB前端开发...

    近来项目中的大众组件 在复用的时刻 针对差别的场景 须要不停变动CSS里款式的值 而且已经有了全局的大众组件款式了 假如用vue传统的动态绑定class和style的体式格局去修正款式 文末会提到 须要分外写许多变量和模块class 那假如
  • k8s基本问题排查

    排查pod故障 查看pod是否正常 kubectl get pods n fronted 常见pod排查命令 kubectl logs
  • Docker

    目录 1 离线安装 1 1 下载Docker离线包 1 2 下载离线安装工具 1 3 安装 1 4 镜像加速 1 4 1 下面命令直接生成文件 daemon json 1 4 2 重新加载docker配置 1 4 3 重启docker服务