平湖模板网站建设公司网站筑云做关键词
平湖模板网站建设公司,网站筑云做关键词,wordpress 删除标签,英文二手汽车网站建设安装docker
https://www.docker.com/打开windows功能
在控制面板中打开程序和功能#xff0c;再打开启动或关闭windows功能#xff0c;打开这些
123安装完毕后打开doc程序#xff0c;出现以下代表安装运行成功额外信息
如果打开出现出现以下
docker engine stopped打开Power…安装dockerhttps://www.docker.com/打开windows功能在控制面板中打开程序和功能再打开启动或关闭windows功能打开这些123安装完毕后打开doc程序出现以下代表安装运行成功额外信息如果打开出现出现以下docker engine stopped打开PowerShell以管理员方式启动然后输入以下wsl --update或在cmd中输入以下wsl.exe --update安装wsl等待安装完毕后输入以下出现类似结果代表成功wsl -v此时再打开docker出现以下代表docker安装并启动成功docker打包和部署项目项目文件目录结构如下Dockerfile文件# 使用官方的 Python镜像作为基础镜像FROM python:3.12.6# 设置工作目录WORKDIR/app# 将 requirements.txt 文件复制到工作目录COPY requirements.txt.# 安装项目依赖# 在容器中执行 pip install 命令安装 requirements.txt 中列出的所有依赖包。# --no-cache-dir 参数用于避免在安装时缓存包从而减小镜像体积。# -i https://pypi.tuna.tsinghua.edu.cn/simple使用清华大学的镜像源RUN pip install--no-cache-dir-r requirements.txt-i https://pypi.tuna.tsinghua.edu.cn/simple# 将项目代码复制到工作目录# 第一次参数是相对于Dockerfile的路径第二次参数是相对于WORKDIR的路径COPY..# 声明容器在运行时将使用的端口EXPOSE8000# 启动 FastAPI 应用使用 uvicorn 作为 ASGI 服务器CMD[uvicorn,main:app,--host,0.0.0.0,--port,8000,--reload]requirements.txt文件fastapi0.115.0uvicorn0.30.6main.py文件importfastapifromfastapi.responsesimportHTMLResponse appfastapi.FastAPI()app.post(/login)asyncdeflogin(request:fastapi.Request):request_dataawaitrequest.json()usernamerequest_data.get(username)passwordrequest_data.get(password)ifusernamexudawu:print(测试成功)response_content_dict{username:username,flag:中文测试}returnresponse_content_dictapp.post(/click)asyncdefclick_handler():return{response:你点击了div}app.post(/filter)asyncdeffilter_handler():return{response:你选择了筛选框选项}# 主页面嵌入前端代码app.get(/,response_classHTMLResponse)asyncdefread_root():return html body h2Login/h2 form idlogin-form input typetext idusername placeholderUsername required input typepassword idpassword placeholderPassword required button typesubmitLogin/button /form p idresponse/p div idclickable-div stylewidth: 200px; height: 100px; background-color: lightblue; text-align: center; line-height: 100px; cursor: pointer; 点击这里 /div p iddiv-response/p select idfilter-select stylemargin-top: 20px; cursor: pointer; option value选择一个选项/option option valueoption1选项 1/option option valueoption2选项 2/option /select p idfilter-response/p iframe src/iframe width100% height300 styleborder: none;/iframe script document.getElementById(login-form).onsubmit async (e) { e.preventDefault(); const username document.getElementById(username).value; const password document.getElementById(password).value; const response await fetch(/login, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify({ username, password }) }); const result await response.json(); if (result.flag 中文测试) { alert(前后端通信成功) } }; document.getElementById(clickable-div).onclick async () { const response await fetch(/click, { method: POST, headers: { Content-Type: application/json } }); const result await response.json(); document.getElementById(div-response).innerText result.response; }; document.getElementById(filter-select).onchange async (e) { const response await fetch(/filter, { method: POST, headers: { Content-Type: application/json } }); const result await response.json(); document.getElementById(filter-response).innerText result.response; }; /script /body /html # iframe页面嵌入前端代码app.get(/iframe,response_classHTMLResponse)asyncdefread_iframe():return html body h2Login (Iframe)/h2 form idiframe-login-form input typetext idiframe-username placeholderUsername required input typepassword idiframe-password placeholderPassword required button typesubmitLogin/button /form p idiframe-response/p div idiframe-clickable-div stylewidth: 200px; height: 100px; background-color: lightblue; text-align: center; line-height: 100px; cursor: pointer; 点击这里 (Iframe) /div p idiframe-div-response/p select idiframe-filter-select stylemargin-top: 20px; cursor: pointer; option value选择一个选项/option option valueoption1选项 1/option option valueoption2选项 2/option /select p idiframe-filter-response/p script document.getElementById(iframe-login-form).onsubmit async (e) { e.preventDefault(); const username document.getElementById(iframe-username).value; const password document.getElementById(iframe-password).value; const response await fetch(/login, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify({ username, password }) }); const result await response.json(); if (result.flag 中文测试) { alert(前后端通信成功 (Iframe)) } }; document.getElementById(iframe-clickable-div).onclick async () { const response await fetch(/click, { method: POST, headers: { Content-Type: application/json } }); const result await response.json(); document.getElementById(iframe-div-response).innerText result.response; }; document.getElementById(iframe-filter-select).onchange async (e) { const response await fetch(/filter, { method: POST, headers: { Content-Type: application/json } }); const result await response.json(); document.getElementById(iframe-filter-response).innerText result.response; }; /script /body /html if__name____main__:importuvicorn uvicorn.run(app,host0.0.0.0,port8000)docker打包项目文件cd到项目所在根目录,也是Dockerfile所在的目录启动以下命令hello-docker为要打包成的名字.表示Dockerfile当前所在的目录docker build-t hello-docker.执行过程docker手动拉取镜像当使用Dockerfile里的配置拉取镜像失败使用以下手动方式拉取镜像docker pull python:3.12.6docker项目打包成功使用以下命令查看创建好的镜像docker images启动刚刚创建的镜像使用以下代码启动docker镜像hello-docker为指定的镜像名docker run-d-p8000:8000your_image_name打开docker desktop可以看到镜像创建成功并已经启动鼠标点击这里的链接正常打开如下页面代表docker部署成功删除镜像docker rmi image_name执行成功导出docker打包的项目hello_docker_explore.tar为导出要存储的目标文件名hello_docker要打包的镜像名latest要打包的镜像标签docker save-o hello_docker_explore.tar hello_docker:latest然后在启动cmd的当前目录自动生成打包好的镜像文件导入打包好的docker镜像在docker镜像包的当前目录启动终端docker load-i hello_docker_explore.tar使用以下命名查看所有镜像可以看到导入成功docker images导出镜像docker save 镜像idnew_imagesname.tar查看docker镜像的文件结构使用以下命令进入项目文件根目录docker run-it scau_jwc_v1/bin/bash使用以下命令查看根目录文件目录ls使用以下命令进入文件目录ls/app/database这里要加app是因为Dockerfile中设置了工作目录为以下以下是文件目录的命令结果docker官方镜像官网https://hub.docker.com/常用镜像SQL Serverdocker pull mcr.microsoft.com/mssql/server卸载docker卸载docker desktop然后在以下路径删除本地文件还有如下文件docker挂载、数据持久化数据卷数据卷是 Docker 管理的一种特殊目录位于 Docker 主机文件系统中默认在 /var/lib/docker/volumes/ 目录下。数据卷可以在容器之间共享并且不受容器生命周期的影响具有高性能和易于管理的特点。/var/lib/docker/volumes/是一个虚拟目录并不会暴露在Windows或者mac中属于Linux 系统上的 Docker 默认数据存储路径创建数据卷docker volume create my_volume查看所有数据卷listdocker volume ls查看数据卷详细信息docker volume inspect my_volume挂载数据卷到容器docker run-d-v my_volume:/app/data my_image绑定挂载绑定挂载是将主机上的一个特定目录或文件直接挂载到容器内部路径中。使用绑定挂载可以将容器的数据直接保存在主机的指定路径中挂载的主机目录或文件不会随着容器删除而删除。挂载主机目录到容器docker run-d-v C:\download:/container/path my_image区别数据卷和绑定挂载是两种独立的数据持久化方式可以选择其一来实现数据持久化数据卷优点这种方式相当于把挂载全部交给Docker本身处理方便快捷。缺点真实挂载目录由Docker生成目录较深不方便查找。数据挂载优点目录和文件更好找也更好维护并且能直接把目录或者文件挂载到容器上。缺点目录和文件需要我们自行创建和维护。常见镜像阿里云镜像官网https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors使用镜像命令单次使用比如拉取ollama默认拉取命名为docker pull ollama/ollama在镜像名前添加镜像地址如以下构成单次使用镜像源拉取镜像docker run -d docker.m.daocloud.io/ollama/ollama更多可用镜像仓库https://github.com/DaoCloud/public-image-mirror中科大镜像官网https://mirrors.ustc.edu.cn/配置镜像添加以下字段registry-mirrors:[https://dockerhub.icu/,https://docker.chenby.cn/,https://1gyy6d27.mirror.aliyuncs.com/,https://docker.awsl9527.cn/,https://docker.anyhub.us.kg/,https://dhub.kubesre.xyz/,https://docker.1panel.live,https://docker.1ms.run,https://mirror.ccs.tencentyun.com,https://docker-0.unsee.tech,https://docker.xuanyuan.me,]MaxKBdocker重新启动后数据丢失需要将数据挂载到指定的存储位置如maxkb的挂载docker run -d --namemaxkb -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb将以上的这部分替换为自己指定的存储路径并且设置privilegedtrue~/.maxkb最终的完整启动docker命令docker run -d --namemaxkb -p 8080:8080 -v C:\xudawu\program\MaxKBData:/var/lib/postgresql/data --privilegedtrue 1panel/maxkbMaxkB配置api时提示无效如果是docker启动maxkb、ollma是宿主机安装的话输入以下http://host.docker.internal:11434/http://host.docker.internal 是一个用于从 Docker 容器访问宿主机的特殊地址。使用这个地址可以让 Docker 容器连接到宿主机上运行的服务SqlServerdocker run--name sqlserver2022-eACCEPT_EULAY-eMSSQL_SA_PASSWORDsqlserver123-p1434:1433--restart always-v C:\xudawu\DockerData2024_09_29\SqlServer_2024_10_30:/var/opt/mssql/data-d mcr.microsoft.com/mssql/serverdocker run: 这是用于运行一个新的 Docker 容器的命令。-e ‘ACCEPT_EULAY’: 这个选项设置环境变量 ACCEPT_EULA表明你接受 Microsoft 的最终用户许可协议 (EULA)。将其设置为 YYes是必要的否则容器将无法启动。-e ‘MSSQL_SA_PASSWORDsqlserver123’: 这个选项设置 SQL Server 的系统管理员SA密码。这里密码被设置为 123-p 1434:1433: 这个选项将容器的 1433 端口SQL Server 的默认端口映射到主机的 1434 端口。这样主机上的应用程序可以通过 localhost:1433 访问 SQL Server。–name sqlserver2022: 这个选项给容器指定一个名称这里是 sqlserver2022这样在管理容器时可以更容易地引用它。-d: 这个选项表示在后台运行容器detached mode即使你关闭终端容器仍然会在后台运行。mcr.microsoft.com/mssql/server: 这是要使用的 Docker 镜像的名称指向 Microsoft 的SQL Server 官方镜像。–restart always当容器停止时总是自动重启-v C:\xudawu\DockerData2024_09_29\SqlServer_2024_10_30:/var/opt/mssql/data数据持久化存储位置启动docker的sqlserver服务器后连接使用navicat连接出现如下报错提示没有安装驱动[IM002][Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序0在navicat安装目录找到msodbcsql_64然后安装安装后再次连接测试测试成功也可以在微软官网下载odbc驱动https://learn.microsoft.com/zh-cn/sql/connect/odbc/microsoft-odbc-driver-for-sql-server?viewsql-server-ver16注意navicat17以上要加端口应将英文的冒号:改为英文的逗号,如将127.0.0.1:1433改为127.0.0.1,1433Navicat导入sql文件在模式上鼠标右键选择运行sql文件修改sa的密码使用navicat连接数据数据库后使用以下sql语句修改密码ALTER LOGIN sa WITH PASSWORD新密码OLD_PASSWORD旧密码;导入bak格式的备份文件新建数据库设置单一用户访问模式空白处右键从文件还原找到本地挂载的备份文件设置好文件路径postgresdocker run--name hello_postgres-e POSTGRES_PASSWORDdocker_postgres-v C:\xudawu\DockerData2024_09_29\postgres_2024_10_31:/var/lib/postgresql/data-p5432:5432-d postgres默认用户名为postgresmysql拉取镜像docker pull mysql:9.1.0启动容器默认用户名root默认端口3306docker.io/mysql:9.1.0docker.io默认使用docker hub的镜像未使用-d则表示前台运行会将运行信息显示在终端docker run--name some-mysql-e MYSQL_ROOT_PASSWORDmy_secret_pw-p3306:3306docker.io/mysql:9.1.0使用以上初始化容器后删除容器使用以下启动容器docker run--name some-mysql-e MYSQL_ROOT_PASSWORDmy_secret_pw-p3306:3306-d mysql:9.1.0使用以下命令进行数据挂载-v/my/own/datadir:/var/lib/mysql安装mysql的odbc先安装微软的mdac依赖https://www.microsoft.com/en-in/download/details.aspx?id21995安装odbchttps://dev.mysql.com/downloads/connector/odbc/安装完毕按winq打开搜索栏搜索odbc打开odbc数据源在这里显示驱动代表安装完成也可以通过以下方式查看有哪些odbc驱动importpyodbcprint(pyodbc.drivers())运行结果Ollama拉取命令在以下dockerhub仓库找到ollama的拉取命令https://hub.docker.com/r/ollama/ollama/tags如以下也可以在Tags里找到安装指定版本的拉取命令docker pull ollama/ollama在终端输入命令docker pull ollama/ollama:latest等待下载完成启动ollama使用以下命令运行镜像为容器CPU onlydocker run--name ollama_container0.4.3-v C:\xudawu\DockerData2024_09_29\ollama_2024_11_21:/root/.ollama-p11434:11434-d ollama/ollamaNVIDIA GPUdocker run-d--gpusall-v ollama:/root/.ollama-p11434:11434--name ollama ollama/ollama来源我这里的命令修改了容器名字和挂载的路径启动成功在docker中能看到端口号本地通过以下地址访问http://localhost:11434/代表ollama正常启动使用ollama命令在ollama命令前增加dockerexec-it ollama_contain_name如以下完整的命令dockerexec-it ollama_contain_name ollama run qwen2.5-coder:3b本地没有模型会先自动下载模型aider镜像仓库链接https://hub.docker.com/r/paulgauthier/aider/tags使用以下命令拉取aiderdocker桥接网络适用于不同容器之间通信查看所有网络列表docker network ls创建自定义桥接网络docker network create docker_bridge_network删除网络docker network rm docker_bridge_network容器加入自定义网络增加以下字段--network docker_bridge_network容器间通信地址如以下sqlserver的连接ip地址常用命令查看所有镜像docker images查看所有运行的容器docker ps查看所有容器docker ps-a启动容器快捷启动docker run-p8080:8080-d your_image_name增加自定义操作docker run--restart always--name scau_jwc_container-p8000:8000-v C:\xudawu\DockerData2024_09_29\scau_jwc_2024_11_01:/scau_jwc/data-d scau_jwc_image:latest–restart always指定停止后总是自动重启–name scau_jwc_container指定容器名–network docker_bridge_network指定网络环境-v C:\xudawu\DockerData2024_09_29\scau_jwc_2024_11_01:/scau_jwc/data指定挂载的本地路径-d scau_jwc_image依赖的本地镜像导出镜像docker save-o hello_docker_explore.tar hello_docker:latest导入镜像docker load-i hello_docker_explore.tar一个docker-compose.yml文件mysql的docker-compose.yml文件services:# 定义服务名,也是容器名mysql910:image:mysql:9.1.0restart:always environment:#root用户的密码MYSQL_ROOT_PASSWORD:sicau_jwc_mysql123# 暴露端口ports:-3306:3306# 将容器的 8000 端口映射到主机的 8000 端口# 挂载数据目录volumes:-C:\xudawu\DockerData2024_09_29\mysql_2024_11_07:/var/lib/mysql# 将主机目录挂载到容器内的数据目录networks:-bridge# 将服务连接到指定的网络启动docker-compose.yml服务cd到文件所在根目录docker-compose up停止服务docker-compose down进入容器内部进入后可执行模型启动命令、调试环境等dockerexec-it maxkb/bin/bash查看容器内文件目录docker exec 容器ID或名称 lsdockerexecmaxkbtest lsls常用命令列出当前目录下的可见文件和目录不包含隐藏文件即不显示以 . 开头的文件ls-a 选项显示所有文件包括以 . 开头的隐藏文件如 .bashrc、.gitignore 等ls-a显示详细信息权限、大小、时间等ls-l组合ls -la显示所有文件包括隐藏文件的详细信息ls-la空运行容器在末尾添加 tail -f /dev/nulldocker run--name maxkbtest-d 1panel/maxkb:latest tail-f/dev/null拷贝本地文件到容器内部docker cp 本地文件/目录路径 容器名称或ID:容器内目标路径先启动一个测试容器docker run--namemaxkbtest-p8889:8080-v C:\Download:/var/lib/postgresql/data-d 1panel/maxkb:latest拷贝文件docker cp C:\xudawu\Ghost1.jpg maxkbtest:/boot拷贝文件目录docker cp C:\Download\temp maxkbtest:/boot删除容器dockerrm-fdocker_name暂停容器dockerstop docker_name重启容器dockerrestart docker_name查看已启动的容器日志dockerlogs docker_name实时查看日志dockerlogs-fdocker_namedocker推送镜像到仓库创建仓库在这里看到推送命令docker tag local-image:tagname new-repo:tagname docker push new-repo:tagname本地登录dockerhubdocker login-u username查看本地的镜像docker images标记镜像docker tag hello_docker:latest rhythmcc/sicau_jwc:latest此处已建立仓库所以命令也同步修改执行完毕推送镜像到仓库docker push rhythmcc/sicau_jwc:latest推送成功在这里查看仓库推送的镜像和查看pull命令本地拉取命令安装odbc先自行下载然后复制到docker中编写Dockerfile# 基础镜像选择适合你需要的镜像FROM python:3.12.6# 复制本地的 .deb 文件到 Docker 容器中的 /tmp/ 目录COPY./mysql-connector-odbc_9.1.0-1debian12_amd64.deb/tmp/# 安装 MySQL ODBC 驱动程序并自动修复依赖RUN dpkg-i/tmp/mysql-connector-odbc_9.1.0-1debian12_amd64.deb||apt-get install-y-f \rm/tmp/mysql-connector-odbc_9.1.0-1debian12_amd64.deb# 清理并安装相关依赖项RUN apt-get update \apt-get install-y \ unixodbc \apt-get clean文件目录结构将安装包复制到此处打包镜像docker build-t mysql_odbc.