1、Docker安装

1.1 卸载旧版本(否者会安装出错)

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

1.2 安装一些需要的环境

 yum install -y yum-utils device-mapper-persistent-data lvm2

1.3 Docker CE 镜像源站

Docker CE 镜像源站 # yum-config-manager --add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 安装最新版本

sudo yum install docker-ce

1.4 查看版本信息

docker 

docker -v

1.5 配置 腾讯云 Docker 镜像源加速镜像

sudo mkdir -p /etc/docker

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

1.6 Docker 基础命令

配置开机启动# systemctl enable docker

启动docker# systemctl start docker

查看docker信息# docker info

关闭docker# systemctl stop docker

重新docker# systemctl reload docker

1.7 hello-world

docker run hello-world

2、Docker 核心操作命令

2.1 镜像操作

2.1.1 查看镜像

列出本机上所有的镜像# docker images
参数
-a 列出本地所有的镜像
-q 只显示镜像ID
--digests 显示镜像摘要信息 REPOSITORY:表示镜像的仓库源名称
TAG:镜像的标签,同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,latest最新
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小

2.1.2拉取镜像

2.1.2.1 搜索需要的镜像

dockerhub:https://hub.docker.com/search?q=mysql

2.1.2.2 找到需要的版本

2.1.2.3 复制命令 执行

2.1.3 删除镜像

docker mri -f 镜像名/镜像ID

docker rmi -f $(docker images -aq) 删除全部镜像

2.2 容器操作

2.2.1 根据镜像创建并启动容器

docker run [OPTIONS] IMAGE  #根据镜像新建并启动容器。IMAGE是镜像ID或镜像名称

OPTIONS说明:
--name=“容器新名字”:为容器指定一个名称
--rm:退出时删除容器 
-d:后台运行容器,并返回容器ID,也即启动守护式容器
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端,通常与-i同时使用
-p:指定端口映射 实例:
docker run -itd --name mysql01 -p 3306:3306 mysql:5.7.30
此命令会创建容器,但是启动容器失败,命令不完整,下面实战会重新使用 因为我们服务器上本来就安装有mysql所以需要停止mysql服务
service mysqld stop
如果不能停止可以参考:https://blog.csdn.net/weixin_29009881/article/details/113280951

2.2.2 列出所有容器

docker ps 列出所有正在运行的容器

带参
-a 列出所有的容器
-l 列出最近创建的容器
-n 3 列出最近创建的3个容器
-q 只显示容器ID,先启动容器
--no-trunc 显示当前所有正在运行的容器完整信息

2.2.3 容器启动,停止,删除

docker start 容器ID或容器名称 #启动容器

docker restart 容器ID或容器名称  #重新启动容器

docker stop 容器ID或容器名称 #停止容器

docker kill 容器ID或容器名称 #强制停止容器

docker rm 容器ID或容器名称 #删除容器

docker rm -f 容器ID或容器名称 #强制删除容器

docker rm -f $(docker ps -a -q) #删除多个容器

2.2.4 查看容器日志

docker logs -f -t --since="日期"  --tail 容器ID或容器名称

实例:
docker logs -f -t --since="2022-01-10" --tail=10 mysql01 -f : 查看实时日志
-t : 查看日志产生的日期
--since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志
--tail=10 : 查看最后的10条日志

2.2.5 进入和退出容器

2.2.5.1 进入容器
方式一(推荐):
docker exec -it 容器名/容器ID /bin/bash
# /bin/bash 交互路径,因为载入容器后运行bash ,docker中必须要保持一个进程的运行。打开一个shell交互窗口,可以操作。 示例:docker exec -it mysql01 /bin/bash 方式二:
docker attach 容器名/容器ID
#前提是容器启动后,必须是启动了终端交互窗口,才可以直接用,比如此命令,进入mysql容器,默认就不能直接打开终端 示例:docker attach mysql01
2.2.5.2 退出容器
方式一(推荐):
ctrl + p + q # 执行此命令容器都不会被关闭
# 注意:有的浏览器会占用这个快捷键 方式二:
exit # 直接退出 执行此参数 容器会被关闭

2.2.6 拷贝文件

# 无论容器是否开启 都可以进行相互拷贝

docker cp 容器ID/名称:容器内路径  容器外路径  # 从容器内 拷出

docker cp 容器外路径 容器ID/名称:容器内路径   # 从外部 拷贝文件到容器内

3、Docker 实战

3.1 Docker容器-MySQL

3.1.1 拉取镜像

docker pull mysql:5.7.30

3.1.2 命令启动

# 先删除之前那个没有配置初始密码的mysql01

docker run -itd --name mysql01 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7.30

# 注意:
# 指定初始密码,容器启动成功,就可以直接进行登录操作
# 端口映射 -p 外部服务器端口:容器端口

3.1.3 查看容器

docker ps

3.1.4 进入容器

dockerexec -it mysql01 /bin/bash

3.1.5 登录服务

mysql -uroot -proot

# 如果服务没有启动,就先启动服务 service mysql start

3.1.6 测试远程连接

3.2 Docker容器-Redis

3.2.1 拉取镜像

docker pull redis:5.0.14

3.2.2 命令启动

docker run -itd --name redis01 -p 6379:6379 redis:5.0.14

3.2.3 查看容器

docker ps -a

3.2.4 进入容器

docker exec -it redis01 /bin/bash

3.2.5 登录服务

 cd /usr/local/bin/ # 进入redis安装目录

 redis-cli # 进入服务端

 ping

3.2.6 测试远程连接

3.3 Docker 图形化工具 Portainer

参考链接:https://blog.csdn.net/m0_67900727/article/details/123550536

3.3.1 拉取镜像

docker pull portainer/portainer

3.3.2 运行Portainer容器

docker run -p 9000:9000 -p 8000:8000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/portainer/data:/data \
-d portainer/portainer 第一次登录的时候需要创建管理员账号,访问地址:http://192.168.5.78:9000/

3.3.3 访问

4、自定义提交镜像

4.1 docker commit

运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个更新的镜像,这时候我们就需要使用 commit 命令来构建一个新的镜像;

4.1.1 拉取一个tomcat镜像并创建运行容器

docker pull tomcat:8.5.78-jdk8-corretto # 拉取镜像

docker run -itd -p 8080:8080 --name tomcat01 tomcat:8.5.78-jdk8-corretto # 创建并运行容器

# 访问端口8080,发现访问404
docker exec -it tomcat01 /bin/bash
进入tomcat的安装目录,进入webapps目录,会发现 下一个文件都没有 ,访问肯定404
文件都在webapps.dist
将webapps.dist下的内容拷贝到webapps目录下
cp -r webapps.dist/* webapps/

4.1.2 打包成新镜像

docker commit -m="第一次打包镜像,tomcat首次访问404" -a="KH96" tomcat01 tomcat:8.5.78-kh9x

语法:
docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag

4.1.3 用新的镜像创建新的容器

docker stop tomcat01 # 停止tomcat01容器
docker rm -f tomcat01 # 删除tomcat01容器
docker images -a # 查看我们新打包的镜像 # 重新创建并运行新的容器 tomcat02
docker run -itd -p 8080:8080 --name tomcat02 tomcat:8.5.78-kh9x # 再次测试访问
可以看到tomcat服务的首页;

4.2 Dockerfile

Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。

4.2.1 常用命令

4.2.1.1 FROM (from)
语法: FROM <image> 或者 FROM <image>:<tag>

含义: 基础image,必须写在第一行,指定在哪个基础镜像上创建镜像,可以是官方远程仓库中的,也可以本地仓库。
4.2.1.2 MAINTAINER (maintainer)
语法: MAINTAINER <name>

含义: 申明作者,用于将image的作者相关的信息写入到image中,辅助使用,一般放FROM命令后面
4.2.1.3 WORKDIR (workdir)
语法: WORKDIR <path>

含义: 设置容器的工作目录,之后的命令RUN 、CMD 、ENTRYPOINT命令都是基于此工作目录,如果不存在则会创建目录,也可以在 docker run命令中用 -w参数覆盖掉WORKDIR指令的设置

注意:为了避免出错,推荐WORKDIR指令中只使用绝对路径,进入容器后默认也是此目录
4.2.1.4 ADD (add)
语法: ADD <src> <dest>

<src>相对被构建的源目录的相对路径,也可以是一个远程的文件url;
<dest> 是container中的绝对路径 含义:它的基本作用是从宿主机系统的文件系统上复制文件到目标容器的文件系统。 1)如果源是一个URL,那该URL的内容将被下载并复制到容器中。
2)如果如果文件是可识别的压缩格式,则docker会帮忙解压缩。
3)如果要ADD本地文件,则本地文件必须在 docker build <PATH>,指定的path目录下,默认当前目录。
4)ADD只有在build镜像的时候运行一次,后面运行container的时候不会再重新加载了。
4.2.1.5 ENV (env)
语法: ENV <key> <value>

含义: 用于设置环境变量,在image中设置一个环境变量。

注意: 设置了后,后续的RUN命令都可以使用,container启动后,可以通过docker inspect查看这个环境变量,也可以通过在docker run --env key=value时设置或修改环境变量。
4.2.1.6 RUN (run)
语法: RUN <command>

含义: 它接受命令作为参数并用于创建镜像,并在镜像构建的过程中执行。

注意: RUN可以运行任何被基础image支持的命令,RUN指令创建的中间镜像会被缓存,并会在下次构建中使用。如果不想使用这些缓存镜像,可以在构建时指定--no-cache参数,如:docker build --no-cache
4.2.1.7 CMD (cmd)
语法: CMD ["executable","param1","param2"]
CMD command param1 param2 含义:用于container启动时指定的操作。该操作可以是执行自定义脚本,也可以是执行系统命令。该指令只能在文件中存在一次,如果有多个,则只执行最后一条。 区别:CMD用于指定在容器启动时所要执行的命令,而RUN用于指定镜像构建时所要执行的命令。
4.2.1.8 ENTRYPOINT (entrypoint)
语法: ENTRYPOINT ["executable", "param1", "param2"]
ENTRYPOINT command param1 param2 含义:这个命令和CMD功能一样。指定容器启动时执行的命令,可以多次设置,但是只有最后一个有效。 指令的使用分为两种情况:
独自使用: 如果你还使用了CMD命令且CMD是一个完整的可执行的命令,那么CMD指令和ENTRYPOINT会互相覆盖,只有最后一个CMD或者ENTRYPOINT有效。
# CMD指令将不会被执行,只有ENTRYPOINT指令被执行
CMD echo “Hello, World!”
ENTRYPOINT ls -l CMD指令配合使用: 和CMD指令配合使用来指定ENTRYPOINT的默认参数,这时CMD指令不是一个完整的可执行命令,仅仅是参数部分;ENTRYPOINT指令只能使用JSON方式指定执行命令,而不能指定参数。
FROM centos
CMD ["-l"]
ENTRYPOINT ["/usr/bin/ls"]
4.2.1.9 USER (user)
语法: USER <user>

含义: 设置指令,设置启动容器的用户,默认是root用户。
4.2.1.10 EXPOSE (expose)
语法: EXPOSE <port> [<port>...]

含义: 暴露容器内部端口,可以设置多个

例如: EXPOSE 5000,暴露的是容器内部端口,不是主机端口,如果外部想使用这个端口需要在运行时映射。
docker run -d -p 127.0.0.1:8080:5000 hello-world

4.2.2 Dockerfile构建jdk+tomcat镜像

4.2.2.1 资源添加
创建一个目录存放资源# mkdir Dockerfile-tomcat

把jdk压缩包和tomcat压缩包放到 Dockerfile-tomcat 的目录下面

4.2.2.1 编辑Dockerfile
# 新建一个空文件Dockerfile,编辑Dockerfile内容。
# vi Dockerfile

Dockerfile内容:

# 基础镜像
FROM centos:7.6.1810 # 作者信息
MAINTAINER kh9x <kh9x@qq.com> # 容器工作目录
WORKDIR /usr/local/ # 在宿主机/usr/local/docker路径下,上传压缩包,并添加tomcat和jdk到镜像中,ADD会自动解压
ADD jdk-8u192-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.73.tar.gz /usr/local/ # 设置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_192/
ENV PATH $JAVA_HOME/bin:$PATH
ENV CATALINA_HOME=/usr/local/apache-tomcat-8.5.73 # 配置启动文件的权限
RUN chmod +x /usr/local/apache-tomcat-8.5.73/bin/*.sh # 指定于外界交互的端口
EXPOSE 8080 # 定义在容器启动之后的运行程序,保持docker容器运行
ENTRYPOINT /usr/local/apache-tomcat-8.5.73/bin/startup.sh && /bin/bash && tail -f /usr/local/apache-tomcat-8.5.73/logs/catalina.out
4.2.2.3 执行构建命令构建(tomcat+jdk)服务镜像
执行命令# docker build -t 镜像名:tag . 

举例# docker build -t tomcat:8.5.73-jdk8-kh96 .

注意:-t为执行镜像的名称,千万不要忽略结尾处的 . ,它表示当前上下文目录。不是Dockerfile的默认目录

构建完成后查看镜像# docker images

4.2.2.4 创建并启动容器 并 访问
先停止commit自定义提交的镜像tomcat02# docker stop tomcat02

创建并启动容器# docker run -itd -p8080:8080 --name tomcat03 tomcat:8.5.73-jdk8-kh96

通过服务器映射端口,访问docker容器tomcat

4.2.3 Dockerfile构建jdk+Springboot项目镜像

4.2.3.1 资源添加
创建一个目录存放资源# mkdir Dockerfile-springbootProject

把项目jar包放到 Dockerfile-springbootProject 的目录下面

4.2.3.2 编辑Dockerfile
FROM java:8

COPY *.jar /app.jar

CMD ["--server.port=8080"]

EXPOSE 8080

ENTRYPOINT ["java","-jar","/app.jar"]
4.2.3.3 执行构建命令构建(jdk+Springboot)服务镜像
构建镜像 # docker build -t springboot:jdk8-springboot .

构建完成后查看镜像# docker images

4.2.3.4 创建并启动容器
创建并启动容器# docker run -itd -p8080:8080 --name springboot01 springboot:jdk8-springboot

查看容器# dockers ps

4.2.3.5 postman访问请求

5、挂载共享数据

5.1 挂载测试

5.1.1 创建容器并指定挂载路径

语法# -v [宿主机路径]:[镜像路径]

创建容器mysql03
将 宿 主 机 的/usr/local/kh96/docker/mount-test
挂载到
容器mysql03的/usr/local/kh96/docker/mount-test 主要命令# -v /usr/local/kh96/docker/mount-test:/usr/local/kh96/docker/mount-test 完整命令
# docker run -itd --name mysql03 -e MYSQL_ROOT_PASSWORD=root -p 3310:3306 -v /usr/local/kh96/docker/mount-test:/usr/local/kh96/docker/mount-test mysql:5.7.30 查看容器#docker ps

5.1.2 查看挂载信息

查看容器详细信息# docker inspect mysql03

5.1.3 修改测试

5.1.3.1 宿主机:

修改宿主机上的内容后:

5.1.3.2 容器:

查看容器上的内容也发生了变化

5.1.4 停止容器后,修改宿主机上的内容

5.1.4.1 宿主机:

5.1.4.2 容器:

5.1.4.3 总结

关闭容器后,修改数据也会同步。

5.2 挂载宿主机mysql 数据和配置文件 到mysql容器 (想错了)

5.2.1 错误

5.2.1.1 mysql:Job for mysqld.service failed because the control process exited with error
#本来想挂载配置文件和数据文件
# 使用一下命令
docker run -itd --name mysql03 -e MYSQL_ROOT_PASSWORD=root -p 3310:3306 -v /etc/my.cnf:/etc/my.cnf -v /var/lib/mysql:/var/lib/mysql mysql:5.7.30 # 但是创建容器后无法启动; # 后面就只挂载了mysql数据文件
docker run -itd --name mysql03 -e MYSQL_ROOT_PASSWORD=root -p 3310:3306 -v /var/lib/mysql:/var/lib/mysql mysql:5.7.30 #容器myslq03可以正常启动,远程也可以正常连接,但是宿主机上的mysql无法启动了;
报错信息#mysql:Job for mysqld.service failed because the control process exited with error 后面一直根据查询网上的解决方法都没有解决;

5.2.1.2 InnoDB: The innodb_system data file 'ibdata1' must be writable

最后看十查看mysql的错误日志,然后根据
错误日志# InnoDB: The innodb_system data file 'ibdata1' must be writable
查到解决方式# chmod -R 777 /var/lib/mysql 解决问题博客原文连接:
https://blog.csdn.net/weixin_40744265/article/details/91398308
https://blog.csdn.net/saywhat_sayhello/article/details/81294687 后面突然理解错了,我以为是将宿主机的配置文件和数据挂进去然后进行数据的同步;

5.3 将mysql03容器的配置文件 和 数据文件 挂载到宿主机 备份 (正确思路)

# 创建两个文件夹,存放容器的配置文件和数据文件
mkdir /usr/local/kh96/docker/mount-mysql03/conf
mkdir /usr/local/kh96/docker/mount-mysql03/data # 创建并mysql03容器并挂载 配置文件和数据文件到 宿主机
docker run -itd --name mysql03 -e MYSQL_ROOT_PASSWORD=root -p 3310:3306 -v /usr/local/kh96/docker/mount-mysql03/conf:/etc/mysql/conf.d -v /usr/local/kh96/docker/mount-mysql03/data:/var/lib/mysql mysql:5.7.30 # 创建并运行成功,远程连接成功;

5.3.1 远程连接:

5.3.2 宿主机上存在容器mysql03的文件:

5.3.3 容器mysql03中的文件:

5.3.4 查看挂载信息

查看容器详细信息# docker inspect mysql03

5.4 匿名挂载,具名挂载,指定路径挂载

5.4.1 匿名挂载

匿名挂载# -v 容器内路径
没有写宿主机上的地址,会放在 /var/lib/docker/volumes 下
5.4.1.1 匿名挂载mysql02
docker run -itd --name mysql02 -e MYSQL_ROOT_PASSWORD=root -p 3308:3306  -v /var/lib/mysql mysql:5.7.30
5.4.1.2 查看容器的挂载信息
查看容器详细信息# docker inspect mysql02

5.4.1.3 查看数据卷信息
查看所有的数据卷# docker volume ls

5.4.2 具名挂载

具名挂载#-v 卷名:容器内路径
没有写宿主机上的地址,会放在 /var/lib/docker/volumes 下
5.4.2.1 具名挂载 mysql02
docker run -itd --name mysql02 -e MYSQL_ROOT_PASSWORD=root -p 3308:3306  -v mysql02-volume:/var/lib/mysql mysql:5.7.30
5.4.2.2 查看容器的挂载信息
查看容器mysql02的详细信息# docker inspect mysql02

5.4.2.3 查看数据卷的信息
查看所有的数据卷# docker volume ls

5.4.3 指定路径挂载

指定路径挂载# -v /宿主机路径:容器内路径:读写权限

读写权限:
rw :可读可写的权限
ro : 可读权限
5.4.3.1 指定路径挂载mysq03
5.3 的mysql03 挂载就是指定路径挂载

docker run -itd --name mysql03 -e MYSQL_ROOT_PASSWORD=root -p 3310:3306 -v /usr/local/kh96/docker/mount-mysql03/conf:/etc/mysql/conf.d -v /usr/local/kh96/docker/mount-mysql03/data:/var/lib/mysql mysql:5.7.30
5.4.3.2 查看容器的挂载信息
查看容器mysql03的详细信息# docker inspect mysql03

5.4.3.3 查看数据卷的信息
查看所有的数据卷# docker volume ls

所有的docker容器内的卷,没有指定目录的情况下都是在 /var/lib/docker/volumes/xxxx/_data 下,如果指定了目录,docker volume ls 是查看不到的。

5.4.4 数据卷删除

挂载在宿主上的数据卷不会自动删除,容器删除后,数据卷任然存在;需要手动删除;

5.4.4.1 查询所有没有被使用的数据卷
# 删除容器 mysql02
# 两次操作,存在个 mysql02的数据卷 # docker volume ls --filter dangling=true

5.4.4.2 删除数据卷
docker volume rm docker volume rm mysql02-volume c5e4ad96bc9eef3ffb987fdf930848c35284e5dc5f20ffe77ed850fc47647bf5

6、Docker常用命令

attach      # 当前shell下 attach连接指定运行的镜像
build # 通过Dockerfile定制镜像
commit # 提交当前容器为新的镜像
cp # 拷贝文件
create # 创建一个新的容器
diff # 查看docker容器的变化
events # 从服务获取容器实时时间
exec # 在运行中的容器上运行命令
export # 导出容器文件系统作为一个tar归档文件[对应import]
history # 展示一个镜像形成历史
images # 列出系统当前的镜像
import # 从tar包中导入内容创建一个文件系统镜像
info # 显示全系统信息
inspect # 查看容器详细信息
kill # kill指定docker容器
load # 从一个tar包或标准输入中加载一个镜像[对应save]
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start # 启动容器
stats Display a live stream of container(s) resource usage statistics
stop # 停止容器
tag # 给源中镜像打标签
top # 查看容器中运行的进程信息
unpause # 取消暂停容器
update Update configuration of one or more containers
version # 查看 docker版本号
wait # 截取容器停止时的退出状态值

SpringCloud(十) - Docker的更多相关文章

  1. springcloud与docker微服务架构实战--笔记

    看了<微服务那些事>之后,Spring boot和Spring Cloud的关系理清楚了,Spring cloud各个模块的作用也了解了. 但是,Spring cloud 与Docker的 ...

  2. springcloud(十四):搭建Zuul微服务网关

    springcloud(十四):搭建Zuul微服务网关 1. 2. 3. 4.

  3. springcloud(十二):Ribbon客户端负载均衡介绍

    springcloud(十二):Ribbon客户端负载均衡介绍 Ribbon简介 使用分布式微服务脚骨的应用系统,在部署的时候通常会为部分或者全部微服务搭建集群环境,通过提供多个实例来提高系统的稳定型 ...

  4. springcloud(十):服务网关zuul

    前面的文章我们介绍了,Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服务集群配置中心,似乎一个 ...

  5. springcloud(十):服务网关zuul(转)

    前面的文章我们介绍了,Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服务集群配置中心,似乎一个 ...

  6. springcloud(十):服务网关zuul初级篇

    前面的文章我们介绍了,Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服务集群配置中心,似乎一个 ...

  7. win10 下springcloud打包docker镜像部署。

    1:建一个最简单的springcloud应用. 2:在根目录下新建dockerfile,文件如下: FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE ...

  8. SpringCloud与Docker微服务架构实战笔记

    一  微服务架构概述 1. 单体应用架构存在的问题 结合:https://www.cnblogs.com/jialanshun/p/10637454.html一起看,在该篇博客中搜索“单块架构的优缺点 ...

  9. springcloud(十五):服务网关zuul

    前面的文章我们介绍了,Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服务集群配置中心,似乎一个 ...

随机推荐

  1. 实时降噪(Real-time Denoising):Spatio-Temporal Filtering

    目录 空间滤波(Spatial Filtering) 基于距离的高斯滤波 双边滤波(Bilateral filtering) 联合双边滤波(Joint Bilateral filtering)[201 ...

  2. pod资源的健康检查-liveness探针的httpGet使用

    使用liveness探针httpget方式检测pod健康,httpGet方式使用的最多 [root@k8s-master1 tanzhen]# cat nginx_pod_httpGet.yaml a ...

  3. [第二章 web进阶]XSS闯关-1

    定义:跨站脚本(Cross_Site Scripting,简称为XSS或跨站脚本或跨站脚本攻击)是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种.它允许恶意用户将代码注入网页,其他用户浏览网 ...

  4. OID 与隐含列

    熟悉PostgreSQL的都知道,PG12 开始,不再支持OID伪列.KingbaseES 为了保证与旧版本兼容,特增加了OID 隐含列的支持. R3版本:OID 是整个数据库共用的"序列& ...

  5. 如何结合整洁架构和MVP模式提升前端开发体验(二) - 代码实现篇

    上一篇文章介绍了整体架构,接下来说说怎么按照上图的分层结构实现下面的增删改查的功能. 代码结构 vue userManage └── List ├── api.ts ├── EditModal │ ├ ...

  6. CSS之垂直水平居中的背后

    最开始,我想说,这个体系有点大,我写的并不好.就当作是一个思路吧,虽然这个思路有点乱.几乎每一个实现方案的背后都是该属性及其组合的原理,每一个都要剖析其规范细节的话,这篇文章绝不会是这样的篇幅,所以每 ...

  7. Python实验报告——第2章 Python语言基础

    实验报告 [实验目的] 1.熟悉在线编程平台. 2.掌握基本的 python 程序编写.编译与运行程序的方法. [实验条件] 1.PC机或者远程编程环境 [实验内容] 1.完成第二章实例01-07,实 ...

  8. 为MinIO Server设置Nginx代理

    官方文档地址:http://docs.minio.org.cn/docs/master/setup-nginx-proxy-with-minio nginx参考网址:https://www.nginx ...

  9. PAT (Basic Level) Practice 1027 打印沙漏 分数 20

    本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***** *** * *** *****   所谓"沙漏形状",是指 ...

  10. C#-3 深入理解类

    一 类的概述(类是逻辑相关的数据和函数的封装,通常代表真实世界中或概念上的事物) 类是一种能存储数据并执行代码的数据结构,包含数据成员和函数成员. 数据成员存储类或类的实例相关的数据: 函数成员执行代 ...