docker操作2

news2024/11/26 4:35:25

docker操作2

文章目录

  • docker操作2
      • 启动新容器
      • 配置新的容器后要做的操作
      • 进入Docker容器
      • 可以显示图片的容器
      • 镜像
        • pull 网络镜像
      • 日志
      • 停止与删除
        • 停止
        • 删除
        • 删除image报错
      • 在容器和宿主机之间拷贝数据
      • 创建命令别名
      • 查看docker运行容器的ip
      • docker image保存与导入
        • 保存image
        • 导入image
      • 打标签tag
      • 拉取镜像 / 推送镜像
    • 扩展容器
      • 导出镜像 / 导入镜像
      • 查询image操作历史
      • 导出和导入容器
      • 重命名镜像 / 容器
      • 查看docker占用硬盘空间大小
      • docker阿里云镜像加速,修改 `/etc/docker/daemon.json`
    • Reference
      • 欢迎关注公众号【三戒纪元】

启动新容器

docker run -it ubuntu /bin/bash

参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash

每次起docker的时候,可以增加-rm,退出docker时,直接删除,可节省硬盘空间

# 启动新的容器并挂载目录
docker run -it --name mycontainer -v /home/lab305/XXX:/root/XXX python:3.6 /bin/bash
docker run -it --name 容器名称 -v 主机上的绝对路径目录:容器上的目录  镜像名:版本号 /bin/bash

# 使用所有显卡
docker run -it --runtime=nvidia --name mycontainer -v /home/lab305/XXX:/root/XXX python:3.6 /bin/bash
docker run -it --gpus all --name mycontainer -v /home/lab305/XXX:/root/XXX python:3.6 /bin/bash

# 指定使用哪几张显卡
docker run -it --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=1,2 --name mycontainer -v /home/lab305/XXX:/root/XXX python:3.6 /bin/bash
docker run -it --gpus "device=1,2" --name mycontainer -v /home/lab305/XXX:/root/XXX python:3.6 /bin/bash

配置新的容器后要做的操作

apt-get update
apt-get install build-essential cmake unzip vim
apt install sudo pciutils usbutils cpio lsb-release
apt-get install -y build-essential cmake curl wget libssl-dev ca-certificates git libboost-regex-dev gcc-multilib g++-multilib libgtk2.0-dev pkg-config unzip automake libtool autoconf libcairo2-dev libpango1.0-dev libglib2.0-dev libgtk2.0-dev libswscale-dev libavcodec-dev libavformat-dev libgstreamer1.0-0 gstreamer1.0-plugins-base libusb-1.0-0-dev libopenblas-dev

进入Docker容器

# 使用该命令进入一个已经在运行的容器
docker ps

docker start 容器名称或者容器id 

# 完整版
docker exec -it 镜像ID /bin/bash  # 针对已运行的容器执行该命令,Ctrl+D不会停止容器的运行
# 最小版(alpine)
docker exec -it 镜像ID sh

docker attach 容器名称或者容器id   # 进入容器,Ctrl+D会停止容器的运行
  • 使用 docker exec 命令,之后退出容器终端,不会导致容器的停止;
  • 使用 docker attach 命令,从这个容器退出,会导致容器的停止。

可以显示图片的容器

# 安装 X11
sudo apt install x11-xserver-utils
host +   # 许可所有用户都可访问xserver
# 创建容器时添加以下参数
--net=host -e DISPLAY=$DISPLAY 
-v /tmp/.X11-unix/:/tmp/.X11-unix -v $HOME/.Xauthority:/root/.Xauthority 
--device /dev/video0  # 摄像头

进入到容器的时候,自动激活环境变量,在 /root/.bashrc 中设置

镜像

# 查看docker镜像
docker images
 
 
# 构建一个镜像
docker build -t holiday /usr/local/docker/holiday #Re-build docker container
 
 
# 提交一个镜像
docker commit 1a442630f4a9 test/javaweb:0.0

pull 网络镜像

如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像:

docker pull ubuntu

日志

# docker日志查询
docker logs xxxxxxxxxxx

停止与删除

停止

# 杀死所有正在运行的容器
docker kill $(docker ps -a -q)
 
docker stop 容器名称或者容器id

# 停止所有容器
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop

删除

# 删除所有已经停止的容器
docker rm  容器名称或者容器id
docker rm $(docker ps -a -q)

# 删除所有容器
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm

# 删除所有未打 dangling 标签的镜像
docker rmi $(docker images -q -f dangling=true)
 
# 删除所有镜像
docker rmi $(docker images -q)
 
# 根据 IMAGE ID 来删除
docker rmi xxxxxxxxxxx

# 删除所有none镜像
docker images|grep none|awk '{print $3 }'|xargs docker rmi

删除image报错

如果删除时报错:

(base) qiancj@qiancj-HP-ZBook-G8:~/tools$ docker rmi 61c45d0e9798
Error response from daemon: conflict: unable to delete 61c45d0e9798 (cannot be forced) - image has dependent child images

可查询依赖

docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=XXX)    # XXX指镜像ID

(base) qiancj@qiancj-HP-ZBook-G8:~/tools$ docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=61c45d0e9798)
[10.78.4.163:8080/tmp_trans/lidar:ubuntu20.04_v3.0 ubuntu20.04:v3.0] sha256:f0b1a8c5a031b19d1c1c7edb47d1d1b55ca549ce29d406aa3df5d91e4210a6bd sha256:6c534e1db1d04a998fa0ab67630bab6a55a2879d07b7fb20a60baa4df1874ad3
[10.78.4.163:8080/tmp_trans/lidar:ubuntu20.04_v3.0 ubuntu20.04:v3.0] sha256:f0b1a8c5a031b19d1c1c7edb47d1d1b55ca549ce29d406aa3df5d91e4210a6bd sha256:6c534e1db1d04a998fa0ab67630bab6a55a2879d07b7fb20a60baa4df1874ad3
[10.78.4.163:8080/tmp_trans/lidar:ubuntu20.04_v2] sha256:6c534e1db1d04a998fa0ab67630bab6a55a2879d07b7fb20a60baa4df1874ad3 sha256:61c45d0e97988ff0cfa876e9ec145445974b9b384fe0a150b057ffc46039b3a0
[compiler:2.0] sha256:0478384869aa6e000a8eda9402a671cfadb46dc76f384a15218ffd7370a82bda sha256:6819470c102372ecbdede48e4bd2ee80e587f7c7a1ee7068c03381e68802eb90
[10.78.4.163:8080/tmp_trans/ros:1.0] sha256:6819470c102372ecbdede48e4bd2ee80e587f7c7a1ee7068c03381e68802eb90 

(base) qiancj@qiancj-HP-ZBook-G8:~/tools$ docker images
REPOSITORY                         TAG                IMAGE ID       CREATED             SIZE
10.78.4.163:8080/tmp_trans/lidar   ubuntu20.04_v3.0   f0b1a8c5a031   About an hour ago   6.1GB
ubuntu20.04                        v3.0               f0b1a8c5a031   About an hour ago   6.1GB
10.78.4.163:8080/tmp_trans/lidar   ubuntu20.04_v2     6c534e1db1d0   5 weeks ago         6.1GB
compiler                           2.0                0478384869aa   5 weeks ago         3.97GB
10.78.4.163:8080/tmp_trans/ros     1.0                6819470c1023   5 weeks ago         1.53GB
ubuntu                             20.04              61c45d0e9798   7 weeks ago         72.8MB
10.78.4.163:8080/lru/faw.lru       v1.9.2-focal       5526da13aba5   3 months ago        6.07GB
10.78.4.163:8080/lru/faw.lru       v1.8.3-bionic      c7f06d4ee561   3 months ago        25.5GB
alpine                             3.16.3             bfe296a52501   5 months ago        5.54MB

也就是本地基于原始版本image,开发适配环境后,生成了几个新的image,这几个新的image 是依赖旧的 image的,相当于父与子的关系,删除父亲之前先删除儿子。

根据根据TAG删除容器

docker rm REPOSITORY:TAG

docker rmi ubuntu:20.04
Untagged: ubuntu:20.04
Untagged: ubuntu@sha256:9fa30fcef427e5e88c76bc41ad37b7cc573e1d79cecb23035e413c4be6e476ab

在容器和宿主机之间拷贝数据

docker cp <container-ID>:/usr/local/bin/randy /usr/local/bin/randy

docker cp 主机数据位置  容器名称:/容器/中的位置
docker cp 容器名称:/容器/中的位置  主机数据位置

创建命令别名

# 杀死所有正在运行的容器.
alias dockerkill='docker kill $(docker ps -a -q)'

# 删除所有已经停止的容器.
alias dockercleanc='docker rm $(docker ps -a -q)'

# 删除所有未打标签的镜像.
alias dockercleani='docker rmi $(docker images -q -f dangling=true)'

# 删除所有已经停止的容器和未打标签的镜像.
alias dockerclean='dockercleanc || true && dockercleani'

查看docker运行容器的ip

# 第一次运行
sudo docker run --name myjenkins -p 8088:8080 -p 50000:50000 -d docker.io/jenkinsci/jenkins
 
# 1. 进入容器内部后
cat /etc/hosts
会显示自己以及(link)软连接的容器IP
 
# 2.使用命令
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID> 
或 
docker inspect <container id> 
或 
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
 
# 3. 可以考虑在 ~/.bashrc 中写一个 bash 函数:
    function docker_ip() {
        sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $1
    }
 
    source ~/.bashrc 然后:
 
    $ docker_ip <container-ID>
    172.qq.cc.jj
 
# 4.要获取所有容器名称及其IP地址只需一个命令。
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
如果使用docker-compose命令将是:
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
 
# 5.显示所有容器IP地址:
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

docker image保存与导入

保存image

docker save image_ID > 导出文件名.tar

导入image

# 将image导入到目标环境的本地设备上
docker load  < centos-binary-neutron-server.tar

打标签tag

docker tag 本地容器名称:版本(或容器ID) 目标镜像名称:版本号

docker tag 3be9fa41ec86 10.78.4.163:8080/tmp_trans/lidar:2.0

(base) qiancj@qiancj-HP-ZBook-G8:~/docker_backup$ docker images
REPOSITORY                         TAG             IMAGE ID       CREATED        SIZE
10.78.4.163:8080/tmp_trans/lidar   2.0             3be9fa41ec86   47 hours ago   27.7GB
lidar                              2.0             3be9fa41ec86   47 hours ago   27.7GB

原来的lidar镜像,打完标签后,会多一个镜像10.78.4.163:8080/tmp_trans/lidar 2.0

拉取镜像 / 推送镜像

docker pull 镜像名称:版本号
docker pull xxx.xxx.xxx.xxx:8000/randy:0.8

docker push 镜像名称:版本号

Usage:  docker push [OPTIONS] NAME[:TAG]

Upload an image to a registry

Aliases:
  docker image push, docker push

Options:
  -a, --all-tags                Push all tags of an image to the repository
      --disable-content-trust   Skip image signing (default true)
  -q, --quiet                   Suppress verbose output
  
  
# 打包提交拉取
docker tag randy:0.8 10.qq.cc.1jj:8000/randy:0.8
docker push xxx.xxx.xxx.xxx:8000/randy:0.8

扩展容器

当我们获取的镜像不能满足需求时,可以在容器内进行扩展,将该容器中的更改后的镜像保存下来。

docker commit -m="randy update" -a="randy" e218edb10161 randy/ubuntu:v3

docker commit -a 作者 -m 提交日志  -t  容器名或ID 仓库名:镜像版本 

# 详细解释
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Create a new image from a container's changes

Aliases:
  docker container commit, docker commit

Options:
  -a, --author string    Author (e.g., "John Hannibal Smith
                         <hannibal@a-team.com>")
  -c, --change list      Apply Dockerfile instruction to the created image
  -m, --message string   Commit message
  -p, --pause            Pause container during commit (default true

扩展的内容可通过导出镜像到文件查看,如下。

导出镜像 / 导入镜像

docker save -o 要保存的文件名  要保存的镜像
docker save -o openvino.tar  openvino

Usage:  docker save [OPTIONS] IMAGE [IMAGE...]

Save one or more images to a tar archive (streamed to STDOUT by default)

Aliases:
  docker image save, docker save

Options:
  -o, --output string   Write to a file, instead of STDOUT
  
########
docker load < 文件名  或  docker load --input 文件

Usage:  docker load [OPTIONS]

Load an image from a tar archive or STDIN

Aliases:
  docker image load, docker load

Options:
  -i, --input string   Read from tar archive file, instead of STDIN
  -q, --quiet          Suppress the load outputUsage:  docker load [OPTIONS]

Load an image from a tar archive or STDIN

Aliases:
  docker image load, docker load

Options:
  -i, --input string   Read from tar archive file, instead of STDIN
  -q, --quiet          Suppress the load output

保存后的文件,可以很清晰地看到保存到内容,包括初始镜像文件,还有每次扩展之后的内容

查询image操作历史

(base) qiancj@qiancj-HP-ZBook-G8:~$ docker history --help

Usage:  docker history [OPTIONS] IMAGE

Show the history of an image

Aliases:
  docker image history, docker history

Options:
      --format string   Format output using a custom template:
                        'table':            Print output in table format with column headers (default)
                        'table TEMPLATE':   Print output in table format using the given Go template
                        'json':             Print in JSON format
                        'TEMPLATE':         Print output using the given Go template.
                        Refer to https://docs.docker.com/go/formatting/ for more information about formatting output with templates
  -H, --human           Print sizes and dates in human readable format (default true)
      --no-trunc        Don't truncate output
  -q, --quiet           Only show image IDs
(base) qiancj@qiancj-HP-ZBook-G8:~$ docker history --format table  10.78.4.163:8080/lru/faw.lru:v1.8.3-bionic
IMAGE          CREATED         CREATED BY                                      SIZE      COMMENT
c7f06d4ee561   2 months ago    /bin/sh -c #(nop) WORKDIR /home                 0B        
<missing>      2 months ago    /bin/sh -c #(nop)  ENV PATH=/usr/local/x86_s…   0B        
<missing>      2 months ago    /bin/sh -c #(nop)  ENV LD_LIBRARY_PATH=/usr/…   0B        
<missing>      2 months ago    /bin/sh -c ln -s /usr/local/x86_sdk/sysroot/…   40B       
<missing>      2 months ago    /bin/sh -c apt-get update && apt-get install…   74.7MB    
<missing>      2 months ago    /bin/sh -c #(nop) COPY file:0a977882018a9194…   5.25MB    
<missing>      2 months ago    /bin/sh -c #(nop) COPY dir:fab1f9d5697162031…   22.7GB    
<missing>      2 months ago    /bin/sh -c #(nop) COPY file:de9f2b043b2d5dc8…   2.89kB    
<missing>      21 months ago   /bin/sh -c apt-get update && apt-get install…   771MB     
<missing>      21 months ago   /bin/sh -c apt-get update && apt-get install…   667MB     
<missing>      21 months ago   /bin/sh -c apt-get update && apt-get install…   35.9MB    
<missing>      21 months ago   /bin/sh -c apt-get update && apt-get install…   238MB     
<missing>      21 months ago   /bin/sh -c rosdep init &&   rosdep update --…   895kB     
<missing>      21 months ago   /bin/sh -c apt-get update && apt-get install…   175MB     
<missing>      21 months ago   /bin/sh -c #(nop)  CMD ["bash"]                 0B        
<missing>      21 months ago   /bin/sh -c #(nop)  ENTRYPOINT ["/ros_entrypo…   0B        
<missing>      21 months ago   /bin/sh -c #(nop) COPY file:cbbaa0f5d6a27651…   95B       
<missing>      21 months ago   /bin/sh -c apt-get update && apt-get install…   785MB     
<missing>      21 months ago   /bin/sh -c #(nop)  ENV ROS_DISTRO=melodic       0B        
<missing>      21 months ago   /bin/sh -c #(nop)  ENV LC_ALL=C.UTF-8           0B        
<missing>      21 months ago   /bin/sh -c #(nop)  ENV LANG=C.UTF-8             0B        
<missing>      21 months ago   /bin/sh -c apt-key adv --keyserver hkp://key…   1.77kB    
<missing>      21 months ago   /bin/sh -c echo "deb http://packages.ros.org…   51B       
<missing>      22 months ago   /bin/sh -c apt-get update && apt-get install…   11.1MB    
<missing>      22 months ago   /bin/sh -c echo 'Etc/UTC' > /etc/timezone &&…   3.19MB    
<missing>      22 months ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B        
<missing>      22 months ago   /bin/sh -c mkdir -p /run/systemd && echo 'do…   7B        
<missing>      22 months ago   /bin/sh -c [ -z "$(apt-get indextargets)" ]     0B        
<missing>      22 months ago   /bin/sh -c set -xe   && echo '#!/bin/sh' > /…   745B      
<missing>      22 months ago   /bin/sh -c #(nop) ADD file:e05689b5b0d51a231…   63.1MB

能看出来每一次的操作

导出和导入容器

导出容器

如果要导出本地某个容器,可以使用 docker export 命令。

$ docker export 1e560fca3906 > ubuntu.tar

这样将导出容器快照到本地文件。

导入容器快照

可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:

$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1

此外,也可以通过指定 URL 或者某个目录来导入,例如:

$ docker import http://example.com/exampleimage.tgz example/imagerepo

重命名镜像 / 容器

# 重命名镜像,其实是复制一份镜像
docker tag IMAGEID  REPOSITORY:TAG
# 重命名容器
docker rename 旧容器名  新容器名

查看docker占用硬盘空间大小

docker system df
du -hs /var/lib/docker/

docker阿里云镜像加速,修改 /etc/docker/daemon.json

# 如果没有 daemon.json 文件,就新建一个
# 加入以下内容, 其中 'y8lulm2r' 是在阿里云官网上个人的id
{
  "registry-mirrors": ["https://y8lulm2r.mirror.aliyuncs.com"]
}
# 如果存在 daemon.json 文件
{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
              }	
             },
	"registry-mirrors": ["https://y8lulm2r.mirror.aliyuncs.com"]
}
# 最后运行
sudo systemctl daemon-reload
sudo systemctl restart docker

Reference

docker images 导入和导出
Docker的使用记录

欢迎关注公众号【三戒纪元】

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

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

相关文章

CMake的应用与实践

CMake 简介 CMake是什么&#xff1f; 全称 Cross Platform Make&#xff0c;起初为了跨平台需求&#xff0c;而后不断完善并广泛使用一款优秀的工程构建工具 特点和优势 开放源代码&#xff0c;具有BSD许可跨平台&#xff0c;支持Linux&#xff0c;Mac和Windows等不同操作系…

【C生万物】 字符串内存函数篇 (上)

欢迎来到 Claffic 的博客 &#x1f49e;&#x1f49e;&#x1f49e; &#x1f449; 专栏&#xff1a;《C生万物 | 先来学C》&#x1f448; 前言&#xff1a; 过了指针这个坎后&#xff0c;下一步就是C语言中关于字符的处理&#xff0c;这一期来讲…

chatgpt赋能Python-python5个一行

Python: 5行代码改变世界 Python是一种高级编程语言&#xff0c;以其简单易学的特性而闻名。Python的发明者Guido van Rossum在1980年代末和1990年代初创造了Python&#xff0c;旨在创建一种语言&#xff0c;既易于理解又易于使用。如今&#xff0c;Python已经成为了最受欢迎的…

【离散数学】陪集和拉格朗日定理编程题

1&#xff1a;编写一个程序能够计算有限群G的子群H的左陪集 输入一个n阶有限群G的二元运算表及相关的子群&#xff0c;输出其左陪集。 &#xff08;注意&#xff1a;按照表头元素顺序计算每个陪集&#xff0c;下图为G的二元运算表示例&#xff09; 样例1&#xff1a; 输入&…

干货 | 利用SPSS进行高级统计分析第三期

Hello&#xff0c;大家好&#xff01; 这里是壹脑云科研圈&#xff0c;我是喵君姐姐~ 在本期中&#xff0c;我们继续为大家介绍如何利用SPSS进行&#xff1a;单因素方差分析、多因素方差分析、重复测量方差分析等。 1. 单因素方差分析【组间实验单一因变量&#xff1b;进行差…

iptables防火墙中的SNAT和DNAT

SNAT的原理和应用 SNAT 应用环境∶局域网主机共享单个公网IP地址接入Internet &#xff08;私有IP不能在Internet中正常路由&#xff09; SNAT原理∶修改数据包的源地址。 SNAT转换前提条件∶ 局域网各主机已正确设置IP地址、子网掩码、默认网关地址Linux网关开启IP路由转发…

游资92科比到底牛在哪里?

昨天一天时间把92科比之前的一个帖子全部看完&#xff0c;从科比对情绪周期的把握来看那简直总结的已经是标准答案了&#xff0c;那么为何92科比公布了答案&#xff0c;还是有很多人“痛苦”的做不到&#xff1f; 这个问题我觉得跟退学炒股是一样的&#xff0c;退学先解决了小…

springcloud-alibaba (03)sentinel下载安装

Sentinel 一&#xff0c;下载安装&#x1f4a0;二&#xff0c;编写脚本&#x1f9ff;三&#xff0c;启动sentinel&#x1f48e;四&#xff0c;Win-访问控制台✨ 在Linux中下载安装Spring Cloud Alibaba Sentinel&#xff0c;可以按照以下步骤进行操作&#xff1a; 一&#xff0…

Python常见面试题. Python中的解包操作及其应用场景

这是个简单的知识点&#xff0c;但有的同学并不理解 unpacking解包 解&#xff0c;对应的是*或者**&#xff0c;也有自动解包之说 包对应的可迭代对象 Python助学大礼包点击跳转获取 目录 一、自动解包二、数据过多的解包*三、星号在函数中的使用四、两个星号的解包五、场…

Lesson13---人工神经网络(2)

13 人工神经网络&#xff08;2&#xff09; 多层神经网络-非线性分类问题多层神经网络的损失函数不是凸函数&#xff0c;很难计算解析解通常采用梯度下降法&#xff0c;得到数据解&#xff0c;梯度下降法可以用来求解函数极值问题 批量梯度下降随机梯度下降小批量梯度下降 1…

[Nacos] Nacos Client获取所有服务和定时更新Client端的注册表 (三)

文章目录 1.Nacos Client获取所有服务1.1 Client如何获取所有服务1.2 Client获取服务方法getServices()详解 2.Nacos定时更新Client端的注册表2.1 Nacos和Eureka定时更新Client端的注册表的区别2.2 Client定时更新本地服务过程2.3 updateServiceNow方法解析2.4 定时更新本地注册…

DrissionPage学习(一)

一、下载适合mac环境的chromedriver.exe 1.查找chrome浏览的版本 方法二&#xff1a;查看chrome版本信息 2.确定版本后在下载chrome对应的chromedriver.exe 下载地址&#xff1a;http://chromedriver.storage.googleapis.com/index.html 3.在文件夹中找到下载的文件chro…

MyBatis-Plus or() equls() 连用的格式为 a AND (b OR c)

正确示范&#xff1a; userInterfaceQueryWrapper.and(qw -> qw .eq("status", UserInterfaceInfoStatusEnum.OFFLINE) .or() .eq("status", UserInterfaceInfoStatusEnum.TRYOUT));错误示范&#xff1a; userInterfaceQueryWrapper.eq("status&…

分布式项目10.jsonp 使用js中script的属性src进行服务器之间的访问

一般使用ajax来访问不同服务器的数据&#xff0c;可行吗&#xff1f; 做个实验&#xff1a; 第一步&#xff1a;在本服务器中使用ajax技术访问本服务器数据 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>测试JSON跨域…

NFT游戏Mythical Beings将参加NFT Polygon 在线展会

Mythical Beings神秘生物是由Tarasca Art & Games 开发的基于区块链的卡牌收集游戏。游戏中每张卡牌所拥有的属性和背后的故事都是独一无二的&#xff0c;Mythical Beings不仅具有游戏属性&#xff0c;还兼具故事的传承。 作为一款跨链Polygon的NFT游戏&#xff0c;Mythic…

Transformer架构解析

1.Transformer架构图 本文主要来自&#xff1a;http://nlp.seas.harvard.edu/annotated-transformer/#hardware-and-schedule 论文地址: https://arxiv.org/pdf/1810.04805.pdf 1.1 Transformer模型的作用 基于seq2seq架构的transformer模型可以完成NLP领域研究的典型任务,…

ThinkPHP6模型中的获取器,修改器及搜索器的简单使用

ThinkPHP6模型中的获取器&#xff0c;修改器及搜索器的简单使用 1. 获取器2. 修改器3. 搜索器 1. 获取器 获取器的作用是对模型实例的&#xff08;原始&#xff09;数据做出自动处理。一个获取器对应模型的一个特殊方法&#xff08;该方法必须为public类型&#xff09;&#x…

MySQL(用户管理)

文章目录 1 用户1.1 用户信息1.2 创建用户1.3 删除用户1.4 修改用户密码 2 数据库的权限2.1 给用户授权2.2 回收权限 1 用户 1.1 用户信息 MySQL中的用户&#xff0c;都存储在系统数据库mysql的user表中 host&#xff1a; 表示这个用户可以从哪个主机登陆&#xff0c;如果是l…

GPT专业应用:如何让GPT策划方案

身为一名职场打工人&#xff0c;或多或少会面临需要写策划案的难题。 不管是策划一场线下活动&#xff0c;还是策划业务发展的方向&#xff1b; 甚至到生活中还需要策划婚礼&#xff0c;策划房屋装修&#xff0c;策划和朋友的聚会等等。那么如何快速积累经验&#xff0c;找准…

项目管理基础:什么是项目管理?

一、项目管理的缘起与发展 项目管理并非基础学科&#xff0c;它是人类在生产实践中不断的经验积累所总结归纳的一门学科&#xff0c;在人们不断的完善与修订下逐步形成了现有的项目管理知识体系。 项目经理是随着人们对项目管理要求的提升而逐渐分化出的一个专业职位&#xf…