前言本篇是我入门docker的第一篇,由于docker具有很好的移植性,易于安装,开箱即用;签约的公司项目开发需要我进行学习,否则money减半,5555~百度找了一圈,只有关于docker怎么装宝塔服务器的却没有一篇宝塔中的 docker装环境的,没办法只能自己探索了,有人会问为什么不使用Windows上的docker,我的电脑是win11,尝试装了装不上,于是使用服务器上的docker创建容器点击【创建容器】拉取【nginx1.18 】容器命名为【test】端口映射【3000->80】1、拉取nginx是因为部署的项目时web环境,不清楚自己了解,除了nginx常用的还有apache2、端口为什么需要映射,我的服务器已经占用了80端口 ,我通过防火墙规则开放一个端口例如:3000 访问它时让它指向docker容器的80端口启动这张图是我盗过来的,访问你的ip:3000打开如图说明docker部署nginx环境成功部署h5项目将项目移动至 www/wwwroot里(注意:这里的目录是docker的目录,不是宝塔的,不知道docker目录可通过对容器操作跳转到目录路径)修改nginx配置路径:/var/lib/docker/********
具有很好的移植性,易于安装,开箱即用;签约的公司项目开发需要我进行学习,否则money减半,5555~ 百度找了一圈,只有关于docker怎么装宝塔服务器的却没有一篇宝塔中的docker装环境的,没办法只能自己探索了 ,有人会问为什么不使用Windows上的docker,我的电脑是win11,尝试装了装不上,于是使用服务器上的docker 创建容器 点击【创建容器】 拉取【nginx1.18】 容器命名为【test :3000 访问它时让它指向docker容器的80端口 启动 这张图是我盗过来的,访问你的ip:3000打开如图说明docker部署nginx环境成功 部署h5项目 将项目移动至www/wwwroot 里(注意:这里的目录是docker的目录,不是宝塔的,不知道docker目录可通过对容器操作跳转到目录路径) 修改nginx配置 路径:/var/lib/docker/*********/etc/ one # #location ~ /\.ht { # deny all; #} } 重启访问 最后 本次只是简单的介绍了docker如何拉取nginx部署h5
image.png 之前已经为Docker配置好了ssh服务,并创建好了带有SSH服务器的镜像,这里在此基础上安装nginx服务器,使外部可以访问容器中的nginx服务 思路 (1)通过ssh登录容器, 安装nginx服务器 (2)创建新的nginx镜像 (3)基于新镜像启动容器,测试nginx服务 操作 (1)安装nginx 启动容器,启动时打开ssh的22端口 docker run -d -p 22 /local/nginx/sbin/nginx 本地测试 curl http://127.0.0.1 可以看到获取到了nginx的欢迎页面 退出ssh (2)创建新的nginx镜像 关闭容器 执行 docker ps 命令,记下容器的ID(这里是 9708d2e3f613) 执行关闭容器的命令 docker stop 9708d2e3f613 执行创建新镜像的命令,指定新镜像的名字为:centos_nginx docker commit 9708d2e3f613 centos_nginx (3)启动容器 指定使用新镜像,并打开容器的 22 和 80 端口 docker run -d -p 22 -p 80
Nginx 反向代理可以方便地实现服务器网络配置,本文记录使用 Nginx 容器进行反向代理 https 服务的方法。 https,仅提供 http 协议服务 安装好了docker 准备安装 nginx docker 目的:以 https 协议对外反向代理本地 http 服务 操作流程 创建 Nginx 容器 先在本地创建共享文件夹 /share/ssl docker run --name=nginx -p 9443:443 -d --restart=always -v /share/ssl:/ssl nginx 创建SSL证书 我是直接在 nginx 容器中创建的证书,也可以在服务器生成导入到容器中 创建方法参考 ssl 证书生成 自签名证书会在登陆网站时提示证书不被CA信任,需要手动添加到本地信任证书列表中 想要比较方便地访问需要生成 配置 在 /etc/nginx/conf.d 文件夹中创建配置文件 test.conf server { listen 443 ssl; listen [::]:443
获取 Tomcat 镜像docker pull tomcat:8.5映射端口图片可以使用一个参数 -p 来进行端口映射意思就是说从主机当中给出一个端口映射到 Tomcat容器里面的 8080 端口,以后你访问该 Tomcat 就直接以主机给出的端口进行访问即可,还可以通过一个 --name 来指定运行的容器名称如下所示:docker run -d -p 8888:8080 --name myTomcat tomcat docker exec -it 143241d7281f /bin/bash图片rm -rf webapps图片在利用 mv 进行重命名,如果不写目录的话代表是重命名,写了就是代表移动。
创建并启动一个容器 docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7 -name: 给新创建的容器命名,此处命名为test-mysql -e: 配置信息,此处配置 mysql 的 root 用户的登录密码 -p: 端口映射,此处映射主机的3306端口到容器test-mysql的3306 查看容器运行状态 docker ps 5. 进入容器 docker exec -it test-mysql /bin/bash 6. 启动和关闭容器 docker start test-mysql # 指定容器名称 docker start 73f8811f669e # 指定容器ID docker start test-mysql # 修改MySQL配置文件
宝塔配置nginx集群简单记录 服务器添加站点 添加反向代理(不开启缓存) upstream hyperf_server { server 127.0.0.1:9601 max_fails=2 8.nginx支持同时设置多组的负载均衡,用来给不用的server来使用。 client_body_temp_path 设置记录文件的目录 可以设置最多3层目录 location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡 找到反向代理的文件夹(www/server/panel/vhost/nginx /proxy/目录下) 修改反向代理文件 至此简单的轮询模式配置成功 其他参数扩展nginx的五种负载算法及扩展: #1) 轮询(默认),每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器死机 Nginx本身是不支持fair的,如果需要使用这种调度算法,必须下载Nginx的upstream_fair模块。
实践环境 Docker version 20.10.5 MySQL5.7 Centos 7.8 创建步骤 1、拉取MySQL镜像 docker pull mysql:5.7 说明:如果不执行该步骤,执行创建 MySQL容器时会自动拉取镜像:docker pull mysql:latest。 /usr/local/mysql/conf目录下 3、创建MySQL容器数据库 # sudo docker run --restart=always -p 3306:3306 --name db.mysql Wmh&,还可以配置其它 实践时发现,以下3个配置不起作用 MYSQL_DATABASE : 运行时需要创建的数据库名称; MYSQL_USER : 运行时需要创建用户名,与MYSQL_PASSWORD 4、进入容器,登录MySQL # docker exec -it db.mysql /bin/bash root@0b023eb3b811:/# root@0b023eb3b811:/# mysql -
本文主要介绍如何将宝塔面板作为 Docker 容器安装在 Linux 服务器上。其实对于宝塔一开始我是拒绝的,毕竟我之前是可以熟练操作 Linux 服务器的。 Docker 管理成本低,方便迁移。 可随时管理容器,无需重置服务器。 备份宝塔面板 备份容器 如果我们迁移的话,不需要再重复上面的安装配置步骤,直接使用我提供的脚本: curl -fsSL https://youngjuning.js.org/shell/baota/backup.sh | sh 压缩包 baota.tar 将备份到当前目录,上传到新的服务器之后载入容器: docker load -i baota.tar 恢复容器: curl -fsSL https://youngjuning.js.org 如果事先安装了 nginx,请先卸载,完全卸载请执行 curl -fsSL http://youngjuning.js.org/shell/nginx/uninstall.sh | sh
概述BAOTA(宝塔Linux面板)是一款提升运维效率的服务器管理软件,支持一键部署LAMP/LNMP环境、集群管理、服务器监控、网站搭建、FTP配置、数据库管理、JAVA环境等100多项服务器管理功能 Nginx状态(若使用LNMP环境)/etc/init.d/mysqlstatus#检查MySQL状态exit#退出容器终端端口连通性测试:使用curl命令测试面板端口连通性:展开代码语言:BashAI 代码解释curl-Ihttp://localhost:8888/btpanel#应返回200OK状态码数据持久化验证:在宿主机挂载目录(如~/website_data)创建测试文件,然后进入容器查看是否同步 max-size":"10m","max-file":"3"}}配置后重启Docker服务:systemctlrestartdocker故障排查常见问题及解决方法容器启动失败排查步骤:查看容器启动日志: /volumes总结本文详细介绍了BAOTA(宝塔Linux面板)的Docker容器化部署方案,包括环境准备、镜像拉取、容器部署、功能测试、生产环境优化及故障排查等关键环节。
今天用docker的swarm搭建了一个集群,在启动主节点的swarm的时候出错了,报的错误是: /usr/bin/docker-current: Error response from daemon: 317173685c23c029fd5f28b88ecf1ad2ac425e0338a22ba2b3eeec7b945519fd): iptables failed: iptables –wait -t nat -A DOCKER -i docker0: iptables: No chain/target/match by that name. 看到这个错误我觉得可能是防火墙的原因,但是我防火墙已经关闭了,后来到网上查了一下,发现关闭防火墙还不行, 还需要重启docker服务,于是执行service docker restart,再一次启动swarm 容器,OK成功!
本文通过Docker Compose来创建mysql容器 在linux服务器上创建文件,用于管理容器 mkdir docker-mysql cd docker-mysql vim docker-compose.yml MYSQL_ROOT_PASSWORD: PSAAWORD MYSQL_USER: root MYSQL_DATABASE: database 记得防火墙要开放3306、3310端口 创建启停脚本文件 vim start docker-compose up -d vim restart docker-compose restart vim stop docker-compose stop 修改脚本文件权限 chmod 777 st* restart 启动mysql容器 . /start 查看容器 mysql数据库基本配置 创建MySql用户 CREATE USER dbadmin@localhost IDENTIFIED BY 'pwd'; dbadmin@localhost
docker run --name nginx -p 8089:8089 -d nginx 直接运行的时候换成8089端口号,虽然能够运行容器但是外部仍然无法访问。 解决方案 1、进入docker 容器 docker exec -it 容器名 /bin/bash 我的容器名字就叫做nginx 因此进入docker容器内部命令为 docker exec -it nginx /bin/bash 2、查看nginx 启动的配置文件,默认在容器的/etc/nginx/conf.d/default.conf 3、因为docker 容器内部没有vi编辑器 4、docker cp nginx:/etc/nginx/default.conf /home/ 修改nginx启动的端口号为8089,只需要将default.conf中的listen配置改成8089 5、将default.conf拷贝回nginx容器内 docker cp /home/default.conf nginx:/etc/nginx/conf.d/ 6、重启 docker restart
示例:以下是一个简单的示例,演示如何使用现有的nginx镜像创建一个运行中的容器,并将容器的80端口映射到主机的8080端口: docker run -d -p 8080:80 nginx 在这个示例中 这些是使用现有镜像创建容器的基本步骤。根据实际需求,还可以进一步定制容器的配置,如挂载数据卷、设置环境变量等。 通过以上步骤,你就可以创建自定义的 Docker 镜像,并在容器中运行你的应用程序。在实际应用中,你可能需要根据你的应用程序需求对 Dockerfile 进行更多的定制化配置。 用法: 编写 Docker Compose 文件:创建一个名为 docker-compose.yml 的 YAML 文件,并在文件中定义应用程序的服务、网络、卷等配置信息。 Docker Compose 会读取 docker-compose.yml 文件,并根据文件中的配置来创建和启动容器。
Docker容器网络配置 1、Linux内核实现名称空间的创建 1.1 ip netns命令 可以借助ip netns命令来完成对 Network Namespace 的各种操作。 2.1 bridge模式配置 在创建容器时添加--network bridge与不加--network选项效果是一致的 # 添加--network bridge [root@localhost ~]# [root@localhost ~]# docker port c044e47fbff6 80/tcp -> 192.168.111.135:80 注意: iptables防火墙规则将随容器的创建自动生成 3.6 自定义docker0网桥的网络属性信息 自定义docker0网桥的网络属性信息很多,以下只演示bip,更多详情见官方文档相关配置 需要修改/etc/docker/daemon.json配置文件 valid_lft forever preferred_lft forever # 网桥修改后,创建出来的容器虚拟网卡IP地址规律也会改变 [root@localhost ~]# docker
本节通过学习 docker 的 nginx 镜像,容器的使用。以及如何映射文件。 运行容器 docker run --name my-nginx -d -p 8088:80 --rm nginx:1.15 -d:在后台运行 -p :容器的80端口映射到 宿主机的 8088 - image.png 根据镜像运行一个容器 docker run --name my-nginx -d -p 8088:80 my-nginx:latest 浏览器打开 locahost:8088 就能看到 hello-world 了 学习nginx需要修改nginx配置文件,我们把容器里面的 Nginx 配置文件拷贝到本地的当前目录。 运行容器 docker run -d -p 80:80 my-nginx:ng-test 注意我映射的端口不再是8088,这样 本地浏览器就能访问 ng.test 了 停止容器: 先 docker
在本教程中,我们将详细介绍如何在 Docker 中构建并运行一个 Nginx 容器,帮助开发者快速搭建和管理 Nginx 服务。 f1489d3891a946dd667c11ac73fd588d5dd63021fbc89062cc152b33d24004d7docker run:这是 Docker 的基本命令,用于创建并启动一个新容器 -d:表示以“分离模式”(detached mode)运行容器。容器将在后台运行,而不是在当前终端中输出日志。--name nginx01:为新创建的容器指定一个名称 nginx01。 进行访问测试总结通过以上步骤,我们成功地在 Docker 中构建并运行了一个 Nginx 容器。这一过程涵盖了从下载基础镜像、创建工作目录,到编写 Dockerfile 和启动容器的完整流程。 Dockerfile 的编写:通过精心设计的 Dockerfile,我们能够自动化安装 Nginx 及其依赖项,简化了手动配置的复杂性。这种方法不仅提高了构建的效率,还减少了人为错误的可能性。
查看已有镜像 docker images 先新建一个php容器 docker run--name php1 -v/home/wwwroot/service_config/php_config:/usr 这样子可以在主机灵活地去修改php配置,nginx同理。 坑:如果没有把配置文件挂载出来,会出现配置文件出错,然后容器就无法start了,也无法进入修改,只能删除重新建立一个容器。 接着开启nginx容器 docker run--name nginx -v/home/wwwroot/:/home/wwwroot/ -v/home/wwwroot/service_config /nginx_config:/etc/nginx/conf.d --link php1:php1 -p 80:80 -d nginx 同样的两个配置挂载目录,第一个是放项目文件的,第二个是放配置文件的 等一列目录 然后/home/wwwroot/service_config/nginx_config文件夹中有两个文件(这两文件docker官方下载下来的nginx镜像是没有的): fastcgi_params
模板 ①:这个容器创建后的名称 ②:对外暴露的端口号 ③:数据卷备份文件夹地址,没有就自己创建 ④:MySQL密码 ⑤:本地MySQL镜像名称 –privileged :容器内的root拥有真正的 root权限.否则,容器内的root只是外部的一个普通用户权限 命令: docker run -id --name=① --privileged=true -p ②:3306 -v ③ -e MYSQL_ROOT_PASSWORD =④ ⑤ 案例: 我的是5.7版本的MySQL 命令: docker run -id --name=cjz_mysql --privileged=true -p 3306:3306 -v /
Please install them with the following command: 解决方法: 创建playwright docker容器,并在容器内运行脚本 在开始使用Docker之前,我们需要从 start myplaywright docker exec -d myplaywright /app/start_all_crawler.sh 创建python3.10docker容器,并在容器内运行脚本 docker pull python:3.10.0 接下来,我们需要创建一个Docker容器。 可以使用以下命令来创建一个名为“python3.10”的容器,并挂载宿主机上的目录: docker run -itd --name python3.10 -v /opt/python_home:/home 进入Docker容器 docker exec -it python3.10 /bin/bash 这将打开一个交互式终端,让我们能够与容器进行交互 将脚本上传到本机/opt/python_home中: 切换到容器的挂载目录