(三)Docker----基础镜像(制作镜像),实现动静分离,本地镜像上传docker仓库

news/2024/4/15 15:11:46

文章目录

  • 一. Docker 镜像与制作
    • 手动制作nginx 镜像(不建议)
    • DockerFile 制作nginx 镜像(建议)
    • 手动制作编译版本 nginx 镜像(不建议)
      • 提交为镜像:
    • 装数据库
  • 二. 构建基础镜像:基础的命令等
    • 1. 基础镜像
    • 2. 构建jdk镜像
    • 3. 构建 tomcat Base 镜像
      • tomcat构建业务镜像 1
      • tomcat 构建业务镜像 2
    • 简单方法直接复制
  • 三. haproxy 镜像
    • 基于官方apline基础镜像制作
    • 基于官方Ubuntu基础镜像制作
  • 四. 实现动静分离
    • 切记里面的iptables规则
  • 五. 本地镜像上传至官方 docker 仓库
    • 1. 阿里云
    • 2.docker hub

一. Docker 镜像与制作

从镜像大小上面来说,一个比较小的镜像只有十几 MB,而内核文件需要一百多兆, 因此镜像里面是没有内核的,镜像在被启动为容器后将直接使用宿主机的内核,而镜像本身则只提供相应的 rootfs,即系统正常运行所必须的用户空间的文件系统,比如/dev/,/proc,/bin,/etc 等目录,所以容器当中基本是没有/boot目录的,而/boot 当中保存的就是与内核相关的文件和目录。

为什么没有内核
由于容器启动和运行过程中是直接使用了宿主机的内核,所以没有直接调用过物理硬件,所以也不会涉及到硬件驱动,因此也用不上内核和驱动,另外有内核的那是虚拟机

Docker 制作类似于虚拟机的镜像制作,即按照公司的实际业务务求将需要安装的软件、相关配置等基础环境配置完成,然后将其做成镜像,最后再批量从镜像批量生产实例,这样可以极大的简化相同环境的部署工作
Docker 的镜像制作分为手动制作和自动制作(基于 DockerFile)

手动制作nginx 镜像(不建议)

下载镜像并初始化系统
基于某个基础镜像之上重新制作,因此需要先有一个基础镜像,本次使用官方提供的 centos 镜像为基础:

[root@docker-server1 ~]# docker pull centos
[root@docker-server1 ~]# docker run -it docker.io/centos /bin/bash 
[root@37220e5c8410 /]# yum install wget -y
[root@37220e5c8410 /]# cd /etc/yum.repos.d/#更改 yum 源
[root@37220e5c8410 yum.repos.d]# rm -rf ./* 
[root@37220e5c8410 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo 
http://mirrors.aliyun.com/repo/Centos-7.repo[root@37220e5c8410 yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo 
http://mirrors.aliyun.com/repo/epel-7.repo

yum 安装并配置 nginx

	#yum 安装 nginx
[root@37220e5c8410 yum.repos.d]# yum install nginx –y #安装常用命令
[root@37220e5c8410 yum.repos.d]# yum install -y vim wget pcre pcre-devel zlib \
zlib-devel openssl openssl-devel iproute net-tools iotop 

关闭 nginx 后台运行

	#关闭 nginx 后台运行
[root@37220e5c8410 yum.repos.d]# vim /etc/nginx/nginx.conf 
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
daemon off; #关闭后台运行

自定义 web 页面

[root@37220e5c8410 yum.repos.d]# vim /usr/share/nginx/html/index.html
[root@37220e5c8410 yum.repos.d]# cat /usr/share/nginx/html/index.html 
Docker Yum Nginx #自定义 web 界面

提交为镜像
在宿主机基于容器 ID 提交为镜像
另一个窗口,不能关闭上一个窗口

     -a指定邮箱-m 备注-c 指定原生的docker指令
[root@docker-server1 ~]# docker commit -m "nginx image" f5f8c13d0f9f entos-nginx:v1

在这里插入图片描述

带 tag 的镜像提交
提交的时候标记 tag 号: #标记 tag 号,生产当中比较长用,后期可以根据 tag 标记启动不同版本启动 image启动

[root@docker-server1 ~]# docker commit -m "nginx image" f5f8c13d0f9f centos-nginx:v1

从自己镜像启动容器

[root@docker-server1 ~]# docker run -d -p 80:80 --name my-centos-nginx jack/centos-nginx /usr/sbin/nginx
ce4ee8732a0c4c6a10b85f5463396b27ba3ed120b27f2f19670fdff3bf5cdb62

访问测试
在这里插入图片描述

DockerFile 制作nginx 镜像(建议)

DockerFile 可以说是一种可以被 Docker 程序解释的脚本,DockerFile 是由一条条的命令组成的,每条命令对应 linux 下面的一条命令,Docker 程序将这些DockerFile 指令再翻译成真正的 linux 命令,其有自己的书写方式和支持的命令,Docker 程序读取 DockerFile 并根据指令生成 Docker 镜像,相比手动制作镜像的方式,DockerFile 更能直观的展示镜像是怎么产生的,有了 DockerFile,当后期有额外的需求时,只要在之前的 DockerFile 添加或者修改响应的命令即可重新生成新的 Docke 镜像,避免了重复手动制作镜像的麻烦

在这里插入图片描述
下载镜像并初始化系统

docker pull centosdocker run -it docker.io/centos /bin/bash cd /opt/ #创建目录环境mkdir dockerfile/{web/{nginx,tomcat,jdk,apache},system/{centos,ubuntu,redhat}} -pv

目录结构按照业务类型或系统类型等方式划分,方便后期镜像比较多的时候进行分类

cd dockerfile/web/nginx/pwd
/opt/dockerfile/web/nginx

编写 Dockerfile
vim ./Dockerfile #生成的镜像的时候会在执行命
令的当前目录查找 Dockerfile 文件,所以名称不可写错,而且 D 必须大写

vim  Dockerfile
#My Dockerfile"#"为注释#第一行先定义基础镜像,后面的本地有效的镜像名,如果本地没有会从远程仓库下载,第一行很重要#FROM 是父镜像
FROM centos #镜像维护者的信息
MAINTAINER qcq 123456@qq.com#USER #容器运行时的用户名和 UID#WORKDIR /a #当前工作目录
#WORKDIR b #指定工作目录,最终为/a/b#VOLUME ["/dir_1", "/dir_2" ..] 设置容器挂载主机目录#容器环境变量
ENV HOST 192.168.1.120# RUN 命令也会使用这面指定的用户执行
RUN rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
RUN yum install -y vim wget tree lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop#自动解压压缩包#包文件导入ADD nginx-1.10.3.tar.gz /usr/local/src/ RUN cd /usr/local/src/nginx-1.10.3 && ./configure --prefix=/usr/local/nginx --with-http_sub_module && make && make installRUN cd /usr/local/nginx/#将配置好的文件导入ADD nginx.conf /usr/local/nginx/conf/nginx.confRUN useradd nginx -s /sbin/nologinRUN ln -sv /usr/local/nginx/sbin/nginx /usr/sbin/nginx
RUN echo "test nginx page" > /usr/local/nginx/html/index.htmlEXPOSE 80 443 #向外开放的端口#运行的命令,每个 Dockerfile 只能有一条,如果有多条则只有最后一条被执行
CMD ["nginx"] 

Dockerfile 构建的镜像里面的 CMD 命令,即指定的命令优先级更高,Dockerfile 的优先级较低一些

准备源码包与配置文件

	 #配置文件关闭后台运行
cp /usr/local/nginx/conf/nginx.conf .#nginx 源码包
cp /usr/local/src/nginx-1.10.3.tar.gz .

执行镜像构建

如果Dockerfile有改变重新构建就可以

	# 最后面是在那个目录下
docker build -it jack/nginx-1.10.3:v1 /opt/dockerfile/web/nginx/

在这里插入图片描述
开始构建
在这里插入图片描述
查看是否生成本地镜像
docker images

从镜像启动容器

docker run -d -p 80:80 --name yum-nginx nginx:v2 /usr/sbin/nginx#只是测试一下
docker run -it --rm -p 80:80 --name yum-nginx nginx:v2 bash

在这里插入图片描述

手动制作编译版本 nginx 镜像(不建议)

过程为在 centos 基础镜像之上手动编译安装 nginx,然后再提交为镜像。

下载镜像并初始化系统

docker pull centos
docker run -it docker.io/centos /bin/bash 、[root@86a48908bb97 /]# yum install wget -y
[root@86a48908bb97 /]# cd /etc/yum.repos.d/#更改 yum 源
[root@86a48908bb97 yum.repos.d]# rm -rf ./* 
[root@86a48908bb97 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo[root@86a48908bb97 yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo  http://mirrors.aliyun.com/repo/epel-7.repo

编译安装 nginx

	#安装基础包
[root@86a48908bb97 yum.repos.d]# yum install -y vim wget tree lrzsz gcc gcc-c++ \
automake pcre pcre-devel zlib zlib-devel openssl \
openssl-devel iproute net-tools iotop [root@86a48908bb97 yum.repos.d]# cd /usr/local/src/
[root@86a48908bb97 src]# wget http://nginx.org/download/nginx-1.10.3.tar.gz
[root@86a48908bb97 src]# tar xvf nginx-1.10.3.tar.gz
[root@86a48908bb97 src]# cd nginx-1.10.3
[root@86a48908bb97 nginx-1.10.3]# ./configure --prefix=/usr/local/nginx --withhttp_sub_module
[root@86a48908bb97 nginx-1.10.3]# make && make install
[root@86a48908bb97 nginx-1.10.3]# cd /usr/local/nginx/

关闭 nginx 后台运行

[root@86a48908bb97 nginx]# vim conf/nginx.conf
user nginx;
worker_processes auto;
daemon off;#创建软连
[root@86a48908bb97 nginx]# ln -sv /usr/local/nginx/sbin/nginx /usr/sbin/nginx 

创建用户及授权

[root@86a48908bb97 nginx]# useradd nginx -s /sbin/nologin
[root@86a48908bb97 nginx]# chown nginx.nginx /usr/local/nginx/ -R

自定义 web 界面

[root@86a48908bb97 nginx]# echo "My Nginx Test Page" > 
/usr/local/nginx/html/index.html

提交为镜像:

[root@docker-server1 ~]# docker commit -m "test nginx" 86a48908bb97 jack/nginxtest-image
sha256:fce6e69410e58b8e508c7ffd2c5ff91e59a1144847613f691fa5e80bb68efbfa[root@docker-server1 ~]# docker commit -m "test nginx" 86a48908bb97 jack/nginx-test-image:v1
sha256:474cad22f28b1e6b17898d87f040dc8d1f3882e2f4425c5f21599849a3d3c6a2

从自己的镜像启动容器

[root@docker-server1 ~]# docker run -d -p 80:80 --name my-centos-nginx 
jack/nginx-test-image:v1 /usr/sbin/nginx
8042aedec1d6412a79ac226c9289305087fc062b0087955a3a0a609c891e1122

访问测试
查看 Nginx 访问日志:在容器当中

装数据库

docker run -it -p 3306:3306 -d  -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.34

在这里插入图片描述
在另一个窗口打开

在另一个机器上安装客户端
在这里插入图片描述
在这里插入图片描述

二. 构建基础镜像:基础的命令等

作用:用于制作指定镜像前的操作
也就是会将这个镜像提交为一个base基础镜像
制作其他镜像以这个镜像为基础

缺点:如果给最上面的镜像加东西
就得把下面所有的镜像重新构建build
在这里插入图片描述

1. 基础镜像

vim /opt/centos/Dockerfile
FROM centosRUN yum install  vim iotop bc gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl  openssl-devel zip unzip zlib-devel  net-tools lrzsz tree  telnet lsof tcpdump wget libevent libevent-devel bc  systemd-devel bash-completion traceroute  -yRUN useradd nginx -u 1101 && useradd tomcat -u 1102#修改 时区
RUN rm -rf /etc/localtime &&  ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

构建镜像

		在本地
docker build -t centos-base:v1 .

构建镜像---->脚本
在这里插入图片描述
执行bash build-command.sh

最后测试:主要是命令—时区

docker  run -it --rm centos-base:v1 bash

2. 构建jdk镜像

cd /opt/web/jdk上传 jdk 二进制包
rz[root@ jdk]#vim Dockerfile #父镜像为centos-base:v1
FROM centos-base:v1该文件必须在本目录下
ADD jdk-8u211-linux-x64.tar.gz /usr/local/src  
RUN ln -sv /usr/local/src/jdk1.8.0_211 /usr/local/jdk该文件必须在本目录下
ADD profile /etc/profile                                                                                                                       
ENV JAVA_HOME /usr/local/jdk
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/
ENV PATH $PATH:$JAVA_HOME/bin

通过脚本构建

[root@docker-server1 jdk]# cat build-command.sh 
#!/bin/bash
docker build -t jdk-base:v1 .

最后测试

docker  run -it --rm jdk-base:v1 bash

在这里插入图片描述

将镜像上传到 harbor

[root@docker-server1 jdk]# docker push 192.168.10.205/centos/centos-7.2.1511-
jdk1.7.0.79

镜像仓库验证

从其他 docker 客户端下载镜像并启动 JDK 容器: #启动的时候本地没有镜像,会从仓库下载,然后从镜像启动容器

在这里插入图片描述

3. 构建 tomcat Base 镜像

编辑 Dockerfile

[root@docker-server1 tomcat8-base]# pwd
/opt/dockerfile/system/centos/tomcat8-base
[root@docker-server1 tomcat8-base]# cat Dockerfile 
#Tomcat Base Image
FROM centos-7.5-jdk:v1ADD apache-tomcat-8.0.49.tar.gz /apps 
RUN ln -sv /apps/apache-tomcat-8.0.49 /apps/tomcat && mkdir -p /data/tomcat/webapps 

上传 tomcat 压缩包

[root@docker-server1 tomcat8-base]# ll apache-tomcat-8.0.49.tar.gz 
-rw-r--r-- 1 root root 9413703 Jul 2 10:06 apache-tomcat-8.0.49.tar.gz

通过脚本构建 tomcat 基础镜像

[root@docker-server1 tomcat8-base]# cat build-command.sh 
#!/bin/bash
docker build -t tomcat-base:v1 .

执行构建

在这里插入图片描述
测试:端口映射

docker  run -it --rm -p 8080:8080 tomcat-base:v1 bash

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

tomcat构建业务镜像 1

创建 tomcat-app1 和 tomcat-app2 两个目录,代表不同的两个基于 tomcat 的业务

准备 Dockerfile

[root@docker-server1 tomcat-app1]# pwd
/opt/dockerfile/system/centos/tomcat-app1[root@docker-server1 tomcat-app1]# cat Dockerfile 
#Tomcat Web Image
FROM tomcat-base:v1 ADD run_tomcat.sh /apps/tomcat/bin/run_tomcat.sh#将数据与配置分开写
RUN mkdir /data/tomcat/webapps/myapp/ADD myapp/* /data/tomcat/webapps/myapp/ADD server.xml  /apps/tomcat/conf#增加权限
RUN chown -R tomcat.tomcat /apps/tomcat/ /apps/apache-tomcat-8.5.42/  /data/tomcat/CMD ["/apps/tomcat/bin/run_tomcat.sh"]EXPOSE 8080 8009

需要修改server.xml文件

也就是修改<Host目录# 前提是自己配置好s
ADD server.xml /apps/tomcat/conf

在这里插入图片描述

准备自定义 myapp 页面

mkdir myapp
echo "Tomcat Web Page1" > myapp/index.htmlcat myapp/index.html 
Tomcat Web Page1

准备容器启动执行脚本

[root@docker-server1 tomcat-app1]# cat run_tomcat.sh 
#!/bin/bash
echo "1.1.1.1 abc.test.com" >> /etc/hosts
echo "nameserver 223.5.5.5" > /etc/resolv.conf
/apps/tomcat/bin/catalina.sh start
su - tomcat -c "tail -f /etc/hosts"chmod +x run_tomcat.sh

准备构建脚本:

[root@docker-server1 tomcat-app1]# cat build-command.sh 
#!/bin/bash
docker build -t tomcat-web:app1 .

执行构建
在这里插入图片描述
从镜像启动容器测试: 不需要加bash

[root@docker-server1 tomcat-app1]# docker run -it -d -p 8888:8080 tomcat-web:app1

访问测试
在这里插入图片描述

tomcat 构建业务镜像 2

准备 Dockerfile

[root@docker-server1 tomcat-app2]# pwd
/opt/dockerfile/system/centos/tomcat-app2
[root@docker-server1 tomcat-app2]# cat Dockerfile 
#Tomcat Web2 Image
FROM tomcat-base:v1
ADD run_tomcat.sh /apps/tomcat/bin/run_tomcat.sh
ADD myapp/* /apps/tomcat/webapps/myapp/
RUN chown www.www /apps/ -R
CMD ["/apps/tomcat/bin/run_tomcat.sh"]
EXPOSE 8080 8009

准备自定义页面

[root@docker-server1 tomcat-app2]# mkdir myapp
[root@docker-server1 tomcat-app2]# echo "Tomcat Web Page2" > myapp/index.html
[root@docker-server1 tomcat-app2]# cat myapp/index.html 
Tomcat Web Page2

准备容器启动脚本

[root@docker-server1 tomcat-app2]# cat run_tomcat.sh 
#!/bin/bash
echo "1.1.1.1 abc.test.com" >> /etc/hosts
echo "nameserver 223.5.5.5" > /etc/resolv.conf
su - www -c "/apps/tomcat/bin/catalina.sh start"
su - www -c "tail -f /etc/hosts"

准备构建脚本

[root@docker-server1 tomcat-app2]# cat build-command.sh 
#!/bin/bash
docker build -t tomcat-web:app2 .

执行构建:

在这里插入图片描述
从镜像启动容器

[root@docker-server1 tomcat-app2]# docker run -it -d -p 8889:8080 tomcat-web:app2 

访问测试

简单方法直接复制

cd /opt/dockerfile/web/tomcat/
mkdir tomcat-app2/
cp tomcat-app1/* tomcat-app2/ -pv
cd tomcat-app2/
vim myapp/index.html 
Tomcat Web Page2
cat tomcat-app2/build-command.sh
#!/bin/bash
docker build -t tomcat-app2-base:v1 .
docker run -it -d -p 8889:8080 tomcat-app2-base:v1
如果失败 给后面加一个 bash

三. haproxy 镜像

前提准备两个页面
在这里插入图片描述

准备 Dockerfile

[root@docker-server1 haproxy]# pwd
/opt/dockerfile/system/centos/haproxy
[root@docker-server1 haproxy]# cat Dockerfile 
FROM centos-base:v1                                                                                                                            RUN yum install make -yADD haproxy-1.8.17.tar.gz /usr/local/srcRUN cd /usr/local/src/haproxy-1.8.17 && make ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1 PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy && cp haproxy /usr/sbin/ && mkdir /usr/local/haproxy/run ADD haproxy.cfg /etc/haproxy/ADD run_haproxy.sh /usr/binEXPOSE 80 9999CMD ["/usr/bin/run_haproxy.sh"]

准备 haproxy 源码文件:

准备 haproxy 配置文件

[root@docker-server1 haproxy]# cat haproxy.cfg 
global
chroot /usr/local/haproxy
#stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
uid 99
gid 99
daemon
nbproc 1
pidfile /usr/local/haproxy/run/haproxy.pid
log 127.0.0.1 local3 info
defaults
option http-keep-alive
option forwardfor
mode http
timeout connect 300000ms
timeout client 300000ms
timeout server 300000ms
listen stats
mode http
bind 0.0.0.0:9999
stats enable
log global
#打开这项功能
stats uri /haproxy-status
stats auth haadmin:123456listen web_port
bind 0.0.0.0:80
mode http
log global
balance roundrobin
server web1 192.168.100.101:8888 check inter 3000 fall 2 rise 5
server web2 192.168.100.101:8889 check inter 3000 fall 2 rise 5

运行脚本

cat run_haproxy.sh 
#!/bin/bash
haproxy -f /etc/haproxy/haproxy.cfg
tail -f /etc/hostschmod +x run_haproxy.sh

准备构建脚本

[root@docker-server1 haproxy]# cat build-command.sh 
#!/bin/bash
docker build -t centos-haproxy-base:7.5-1.8.12 .

执行构建 haproxy 镜像
从镜像启动容器:

[root@docker-server1 haproxy]# docker run -it -d -p80:80 -p9999:9999 centos-haproxy-base:7.5-1.8.12脚本如果不成功: 启动
haproxy  -f /etc/haproxy/haproxy.cfg 

web 访问验证
在这里插入图片描述

基于官方apline基础镜像制作

在这里插入图片描述
在这里插入图片描述

基于官方Ubuntu基础镜像制作

在这里插入图片描述

四. 实现动静分离

在这里插入图片描述

首先在本机实现tomcat镜像
并且在web界面访问成功
然后通过镜像打包

docker save tomcat-app1:v1 > /opt/tomcat-app1.tar.gz
docker save tomcat-app2:v1 > /opt/tomcat-app2.tar.gz

将镜像分别拷贝到101和102

scp 

然后在主机101和102
分别导入镜像

101
docker load -i /opt/tomcat-app1.tar.gz在102
docker load -i /opt/tomcat-app2.tar.gz

在100的haproxy配置后端两个tomcat的地址

最后测试

切记里面的iptables规则

一般需要备份
iptables-restore < iptables-rule.txt

五. 本地镜像上传至官方 docker 仓库

1. 阿里云

http://cr.console.aliyun.com

  1. 准备账户
    登录到 docker hub 创建官网创建账户,登录后点击 settings 完善账户信息

在这里插入图片描述
在这里插入图片描述
然后在管理中看具体操作
在这里插入图片描述

登陆
在这里插入图片描述
打标签
在这里插入图片描述
上传
在这里插入图片描述
在这里插入图片描述

下载
在这里插入图片描述

2.docker hub

https://hub.docker.com/

在虚拟机使用自己的账号登录
docker login https://hub.docker.com/
在这里插入图片描述
在这里插入图片描述

查看认证信息

登录成功之后会在当前目录生成一个隐藏文件用于保存登录认证信息

给镜像做 tag 并开始上传

docker images #查看镜像 ID
#为镜像做标记

docker tag 678e2f074b0d docker.io/zhangshijie/centos-nginx

上传至仓库

docker login #默认即登录到 docker 官方网站docker push docker.io/zhangshijie/centos-nginx

在这里插入图片描述

下载
在这里插入图片描述

本地hub仓库(建议)


http://www.ppmy.cn/news/493515.html

相关文章

RHEL8.x-RedHat-Ansible

alex-rhel8.2 虚拟机 Anisble-练习环境说明 hostname:server1 ip:172.25.254.250/24 kiosk:redhat root:Asimov RHCE-RH294-172.25.254.250 control、node1-5 alice:alice root:redhat [kioskserver1 ~]$ ip addr show privbr0: inet 172.25.250.254/24 inet 172.25.0.254/2…

K8S集群的详细安装步骤大数据教程

Kubernetes是一个可移植的&#xff0c;可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;可促进声明式配置和自动化。它拥有一个庞大且快速增长的生态系统。Kubernetes的服务&#xff0c;支持和工具使用的非常广泛。 Google在2014年开源Kubernetes项目。…

怎么在windows服务器上传文件,windows服务器文件上传

windows服务器文件上传 内容精选 换一换 您需要在源端服务器上安装迁移Agent并且输入目的端服务器所在华为云账号的AK/SK&#xff0c;迁移Agent启动成功后会收集源端服务器信息并自动发送给主机迁移服务。收集的所有信息仅用于数据迁移&#xff0c;不会用做其他用途。具体收集源…

Docker、Podman 容器“扫盲“ 学习笔记【与云原生的故事】

【摘要】 笔记内容&#xff1a;由理论和具体docker常用操作构成。这篇博文笔记的定位是&#xff1a;温习&#xff0c;查阅&#xff0c;不适合新手学习。你拥有青春的时候&#xff0c;就要感受它&#xff0c;不要虚掷你的黄金时代&#xff0c;不要去倾听... 写在前面 笔记内容…

超详细的springBoot学习笔记

Spring Boot 1.Spring Boot简介 Spring诞生时是Java企业版&#xff08;Java Enterprise Edition&#xff0c;JEE&#xff0c;也称J2EE&#xff09;的 轻量级代替品。无需开发重量级的Enterprise JavaBean&#xff08;EJB&#xff09;&#xff0c;Spring为企业级 Java开发提…

权限提升学习

需要掌握的权限理论 #后台权限&#xff1a; ---获得方式&#xff1a;爆破&#xff0c;注入猜解&#xff0c;弱口令等获取的帐号密码配合登录 ---一般网站或应用后台只能操作应用的界面内容数据图片等信息&#xff0c;无法操作程序的源代码或服务器上的资源文件的。&#xff…

UE4/UE5 使用Unreal Datasmith完全教程

&#xff08;2019.12.9&#xff09;Datasmith功能已内置到虚幻4.24版本 Datasmith支持导入Twinmotion&#xff1a;Twinmotion教程汇总&#xff08;2021.4.2&#xff09; Datasmith安装到4.20-4.23版本&#xff1a;UE4 在4.20-23版本安装Datasmith插件&#xff08;2021.3.30更…

SuperMap GIS基础软件中数据库使用指南

作者&#xff1a;Carlo 一、支持的主流数据库类型 1、主流数据库介绍 数据库名称版本不支持的数据集类型需要配置 客户端支持工作空间支持集群模式SQLPlus2008/2012/2016/2018&#xff08;仅 Windows 平台支持&#xff09;视频、复合点、复合线、复合面、复合文本数据集是是是…

【UE4】使用Unreal Datasmith教程(3dsmax2018 SketchUp2018)

转载自 https://blog.csdn.net/qq_21153225/article/details/81318011 效果可以看这个帖子&#xff1a;草图大师SU导入Unity和虚幻UE4对比 Datasmith图标消失看这个帖子&#xff1a;Datasmith图标消失解决 Unreal Datasmith 美术处理流程&#xff0c;支持直接从3DSmax等DCC工具…

【sketchup 2021】草图大师的场景优化工具1【群组工具和组件工具的详细用法(重要)】

文章目录 群组工具普通用法群组的创建编辑群组内部分解群组 高级用法嵌套群组分解嵌套群组解除黏接 组件工具群组和组件的区别普通用法组件的创建分解群组 高级使用常规和对齐功能的说明对齐-总是朝向相机【默认创建】对齐-总是朝向相机阴影朝向太阳对齐-设置组件轴对齐-切割开…

ABAQUS应用中的小技巧

对于三维结构&#xff0c;只有模型区域满足以下条件&#xff0c;才能被划分为结构化网格&#xff1a; ①没有孔洞、孤立的面、孤立的边、孤立的点&#xff1b; ②面和边上的弧度值应该小于90&#xff1b; ③三维区域的所有面必须要保证可以运用二维结构化网格划分方法&#xff…

从DWG导入SKP后的封面问题

引自&#xff1a;http://www.sketchupbbs.com/forum.php?modviewthread&tid31833 从DWG导入SKP后的封面问题 这一篇文章叙述的内容是承接前一篇『从DWG导入SKP的准备工作』的后续进度&#xff0c;前一篇文章是整个从DWG导入SKP的第一部份&#xff0c;其链接如下&#xff…

sketchup 与arcscene交互(2)

近日研究了一下ArcGIS 10的三维制作&#xff0c;及其与sketchup 8的交互&#xff0c;做个笔记&#xff0c;跟同道分享。 方法一&#xff1a;以style符号库导入。 如&#xff0c;对Arc Scene中的松树符号不满意&#xff0c;可以在sketchup中建立一棵松树的模型&#xff0c;作为符…

abaqus6.4导入外来模型的几点经验

abaqus6.4的CAE建模功能仍不是太强大&#xff0c;许多情况下&#xff0c;还得借助于第二、第三方软件完成模型的建立&#xff0c;但在导入过程中&#xff0c;总会或多或少的存在问题&#xff0c;近来做了几个这方面的试验&#xff0c;有几点发现&#xff0c;解释如下&#xff1…

FDM3D打印系列——2、一些基础概念

大家好&#xff0c;我是阿赵。 在买3D打印机之前&#xff0c;一般都会很迷茫&#xff0c;不知道3D打印机是怎样工作的&#xff0c;也不知道有哪些地方需要注意。上一篇文章通过打印一个模型&#xff0c;完整的体验了一次FDM打印3D模型的过程。这里解释一些在3D打印里面的比较基…

【java】Jconsole 开启远程连接遇到的一些坑

文章目录 背景一、JMX二、配置远程连接2.1、Java 程序启动2.2、tomcat 启动2.3、无法远程问题排查2.4、解决方案 三、关闭 tomcat 报错3.1、问题分析3.2、问题解决 总结 背景 最近在学习 JVM&#xff0c;其中涉及到性能、内存等指标分析需要使用工具分享&#xff0c;Java 提供…

android 12.0 屏蔽所有电话来电功能

1.概述 在12.0定制化开发中,最近项目需要开发需求是屏蔽来电功能,需要根据标志位 屏蔽一切来电功能 就是去掉通话功能,这就需要从通话流程进行分析,然后实现功能 ,而我们知道所有的来电去掉都是CallManager.java来负责监听管理的。 2.屏蔽所有电话来电功能的核心代码 pac…

《网络安全0-100》网络安全技术

网络安全技术 防火墙 入侵检测系统 防火墙(Firewall)是一种网络安全设备&#xff0c;用于监控和控制网络流量&#xff0c;以保护网络免受未经授权的访问和攻击。防火墙通过过滤网络流量&#xff0c;阻止潜在的攻击流量进入网络。它可以实现基于端口、协议、IP地址和应用程序的…

C语言进阶教程(一个可执行文件生成的具体步骤)

文章目录 前言一、预处理二、编译三、汇编四、链接总结 前言 本篇文章来讲解一个.c文件生成一个可执行文件的完整过程&#xff0c;我们学习了那么久&#xff0c;只知道在编译器中按下编译运行就可以将一个.c文件运行起来了&#xff0c;但是我们并不了解其中的具体步骤&#xf…

软考A计划-系统集成项目管理工程师-信息化知识(五)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…
最新文章