首页
Linux常用
docker常用
关于
Search
1
docker安装MDCX
276 阅读
2
iStoreOS上使用WireGuard
213 阅读
3
麒麟KylinV10离线下载安装包及安装
210 阅读
4
麒麟v10系统openssh升级OpenSSH_10.0p2-OpenSSL 3.4.2
77 阅读
5
UNRAID增加和缩小虚拟机虚拟磁盘大小
63 阅读
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
Tomcat
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
硬件
登录
Search
标签搜索
nginx
数据库
unraid
PVE
麒麟
dockerfile
同步
wow服务器
装机硬件
宏
v2ray
直通
电视盒子
相册
黑裙7.0.1
远程穿透
定时
ssh
emby
symlink
奥黛丽·逐爱者
累计撰写
132
篇文章
累计收到
7
条评论
首页
栏目
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
Tomcat
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
硬件
页面
Linux常用
docker常用
关于
搜索到
9
篇与
Docker学习
的结果
2025-07-10
【Docker学习】100条常用命令整理,运维必备
一、服务管理命令systemctl start docker:启动 Docker 服务。在安装好 Docker 后,首次使用或服务停止后需要启动时使用该命令。systemctl stop docker:停止 Docker 服务。当需要对 Docker 进行维护、更新或临时停止使用时,可执行此命令。systemctl restart docker:重启 Docker 服务。常用于使新的配置生效,比如修改了 Docker 的配置文件后,需要重启服务。systemctl status docker:查看 Docker 服务状态。可以了解 Docker 服务是否正在运行,以及运行状态的详细信息,如启动时间、进程 ID 等。systemctl enable docker:设置 Docker 服务开机自启。确保每次系统启动时,Docker 服务都能自动运行,方便后续使用。systemctl disable docker:取消 Docker 服务开机自启。如果不想让 Docker 在开机时自动启动,可使用此命令。docker info:查看 Docker 的系统信息,包括镜像和容器的数量、存储驱动、运行时等详细信息。有助于了解当前 Docker 环境的整体情况。docker --help:查看 Docker 的帮助文档。当对某个 Docker 命令的用法不确定时,可通过此命令获取详细的帮助信息。docker version:查看 Docker 的版本信息,包括客户端和服务端的版本号。在排查一些与版本相关的问题时非常有用。二、镜像管理命令docker images:列出本地所有镜像。展示镜像的仓库名称、标签、镜像 ID、创建时间和大小等信息,方便管理和查看本地镜像资源。docker search [镜像名称]:在 Docker Hub 上搜索指定名称的镜像。可根据搜索结果选择合适的镜像进行拉取和使用,例如docker search nginx。docker pull [镜像名称[:标签]]:从 Docker Hub 或其他镜像仓库拉取指定镜像到本地。若不指定标签,默认拉取最新版本(latest),如docker pull ubuntu:20.04。docker rmi [镜像名称或ID]:删除本地指定的镜像。注意,若镜像正在被容器使用,则无法删除,需先停止并删除相关容器。可同时删除多个镜像,如docker rmi ubuntu:20.04 nginx:latest。docker build -t [目标镜像名称:标签] [Dockerfile所在路径]:根据指定路径下的 Dockerfile 构建镜像。-t参数用于指定目标镜像的名称和标签,构建过程会根据 Dockerfile 中的指令逐步创建镜像。docker tag [源镜像名称:标签] [目标镜像名称:标签]:为镜像添加标签。可用于给镜像打上新的版本号或别名,方便区分和管理不同版本的镜像,例如docker tag ubuntu:20.04 ubuntu:latest。docker push [镜像名称:标签]:将本地镜像推送到 Docker Hub 或其他远程镜像仓库。需先登录到对应的仓库,如docker push myusername/nginx:latest。docker history [镜像名称或ID]:查看镜像的构建历史。展示每一层镜像的创建信息,包括创建时间、执行的命令等,有助于了解镜像的构建过程和内容。docker inspect [镜像名称或ID]:查看镜像的详细信息,以 JSON 格式输出。包含镜像的配置、环境变量、挂载点等各种详细信息,对于排查镜像相关问题非常有帮助。docker save -o [保存文件名.tar] [镜像名称或ID]:将镜像保存为一个 tar 文件,便于在不同环境中传输和使用。例如docker save -o ubuntu_20.04.tar ubuntu:20.04。docker load -i [保存文件名.tar]:从 tar 文件中加载镜像到本地。与docker save命令相对应,用于在新环境中恢复镜像。docker import [容器归档文件路径] [目标镜像名称:标签]:从容器的归档文件创建镜像。可将容器的当前状态保存为一个新的镜像,常用于自定义镜像的制作。三、容器管理命令docker run [选项] [镜像名称[:标签]] [容器启动命令]:创建并启动一个容器。常见选项包括-d(后台运行)、-p(端口映射)、-v(卷挂载)等,例如docker run -d -p 80:80 nginx,表示在后台运行一个 nginx 容器,并将宿主机的 80 端口映射到容器的 80 端口。docker ps:列出当前正在运行的容器。显示容器的 ID、名称、使用的镜像、运行状态、端口映射等信息。docker ps -a:列出所有容器,包括已停止的容器。方便查看所有创建过的容器记录。docker start [容器名称或ID]:启动一个已停止的容器。例如docker start mynginx,可将名为 mynginx 的容器启动。docker stop [容器名称或ID]:停止一个正在运行的容器。通过向容器发送停止信号,让容器正常停止运行。docker restart [容器名称或ID]:重启一个容器。先停止容器,然后再启动它,常用于使容器内的新配置生效。docker rm [容器名称或ID]:删除一个已停止的容器。若容器正在运行,需先停止后才能删除,也可使用-f参数强制删除运行中的容器。docker kill [容器名称或ID]:强制终止一个正在运行的容器。通过发送 SIGKILL 信号立即停止容器,可能导致数据丢失,一般在容器无法正常停止时使用。docker exec -it [容器名称或ID] [要执行的命令]:在一个正在运行的容器内执行命令。例如docker exec -it mynginx bash,可进入 mynginx 容器的 bash 终端,进行交互式操作。docker attach [容器名称或ID]:连接到一个正在运行的容器的标准输入、输出和错误输出流。与docker exec不同,docker attach会直接进入容器的主进程,退出时可能会导致容器停止。docker diff [容器名称或ID]:查看容器内文件系统的变化。显示容器内新增、修改和删除的文件和目录,有助于了解容器运行过程中的文件操作情况。docker commit -m "[提交信息]" -a "[作者信息]" [容器名称或ID] [目标镜像名称:标签]:从一个运行中的容器创建一个新的镜像。-m参数用于添加提交信息,-a参数指定作者信息,例如docker commit -m "updated nginx config" -a "John Doe" mynginx mynewnginx:1.0。docker pause [容器名称或ID]:暂停容器内的所有进程。容器状态变为暂停,但资源仍被占用,可通过docker unpause恢复。docker unpause [容器名称或ID]:恢复暂停的容器内的所有进程,使容器继续正常运行。docker top [容器名称或ID]:查看容器内正在运行的进程信息,类似于在宿主机上使用top命令查看进程。docker stats [容器名称或ID]:实时查看容器的资源使用情况,包括 CPU、内存、网络、磁盘 I/O 等指标。docker cp [容器名称或ID]:[容器内文件路径] [宿主机目标路径]:从容器内复制文件或目录到宿主机。也可反向操作,将宿主机文件复制到容器内,例如docker cp mynginx:/etc/nginx/nginx.conf /tmp/。docker logs [容器名称或ID]:查看容器的日志输出。可用于排查容器内应用程序的运行问题,例如查看 Web 服务器的访问日志或应用程序的错误日志。docker logs -f [容器名称或ID]:实时跟踪容器的日志输出,类似于在 Linux 系统中使用tail -f命令查看日志文件,方便实时监控容器的运行状态。docker logs --tail=[行数] [容器名称或ID]:查看容器日志的最后指定行数,例如docker logs --tail=100 mynginx,可查看 mynginx 容器日志的最后 100 行。四、网络管理命令docker network ls:列出所有 Docker 网络。展示网络的名称、ID、驱动类型、子网等信息,方便管理和查看当前的网络配置。docker network create [网络名称]:创建一个新的 Docker 网络。默认创建的是桥接网络,也可通过指定--driver参数创建其他类型的网络,如docker network create --driver=overlay myoverlaynet。docker network inspect [网络名称或ID]:查看指定 Docker 网络的详细信息,以 JSON 格式输出。包含网络的配置、连接的容器、子网掩码、网关等详细信息,有助于排查网络相关问题。docker network rm [网络名称或ID]:删除指定的 Docker 网络。注意,若网络中还有容器连接,则无法删除,需先断开容器与网络的连接。docker network connect [网络名称或ID] [容器名称或ID]:将容器连接到指定的网络。使容器能够与该网络中的其他容器进行通信,例如docker network connect mynet mynginx。docker network disconnect [网络名称或ID] [容器名称或ID]:将容器从指定的网络中断开连接。容器将无法再与该网络中的其他容器通信,但仍可通过其他网络进行通信。docker run --network=[网络名称或ID] [镜像名称[:标签]]:在创建容器时指定容器使用的网络。例如docker run --network=mynet -d nginx,创建一个使用 mynet 网络的 nginx 容器。五、数据卷管理命令docker volume ls:列出所有 Docker 数据卷。展示数据卷的名称、驱动、挂载点等信息,方便管理和查看数据卷资源。docker volume create [数据卷名称]:创建一个新的 Docker 数据卷。数据卷用于在容器之间或容器与宿主机之间共享数据,可持久化保存数据。docker volume inspect [数据卷名称]:查看指定 Docker 数据卷的详细信息,以 JSON 格式输出。包含数据卷的创建时间、挂载路径、使用的驱动等详细信息。docker volume rm [数据卷名称]:删除指定的 Docker 数据卷。注意,若数据卷正在被容器使用,则无法删除,需先停止并删除相关容器。docker run -v [数据卷名称]:[容器内挂载路径] [镜像名称[:标签]]:在创建容器时挂载数据卷到容器内。例如docker run -v myvolume:/data -d mysql,将名为 myvolume 的数据卷挂载到 mysql 容器的 /data 目录。docker run -v [宿主机路径]:[容器内挂载路径]:在创建容器时将宿主机的目录挂载到容器内。实现容器与宿主机之间的数据共享,如docker run -v /hostdata:/containerdata -d ubuntu。docker run -v [宿主机路径]:[容器内挂载路径]:ro:在创建容器时将宿主机的目录以只读方式挂载到容器内。容器只能读取挂载目录中的数据,无法进行写入操作,例如docker run -v /hostdata:/containerdata:ro -d ubuntu。六、其他常用命令docker system df:查看 Docker 系统的磁盘使用情况,包括镜像、容器、数据卷占用的磁盘空间。有助于了解系统资源的使用情况,及时清理不必要的资源。docker system prune:清理 Docker 系统中未使用的资源,包括未使用的镜像、容器、网络和数据卷。释放磁盘空间,优化系统性能。docker builder prune:清理 Docker 构建缓存。在构建镜像过程中,会产生一些缓存文件,使用此命令可清理这些缓存,减少磁盘占用。docker swarm init:初始化一个 Docker Swarm 集群,将当前节点作为管理节点。用于搭建分布式容器编排环境,实现容器的集群化管理。docker swarm join --token [令牌] [管理节点地址]:将当前节点加入到指定的 Docker Swarm 集群中。需要从管理节点获取加入令牌,实现集群的扩展。docker stack deploy -c [docker-compose.yml文件路径] [堆栈名称]:使用 docker - compose 文件部署一个堆栈到 Docker Swarm 集群。方便在集群环境中部署和管理多个相关的容器服务。docker-compose up:在当前目录下根据 docker - compose.yml 文件启动并运行所有服务容器。常用于本地开发和测试环境中,一键启动多个相关的容器服务。docker-compose down:停止并删除由 docker - compose.yml 文件定义的所有服务容器、网络和数据卷。用于清理环境,停止相关服务的运行。docker-compose build:根据 docker - compose.yml 文件构建镜像。如果镜像已经存在,会根据文件中的定义更新镜像。docker-compose ps:列出由 docker - compose.yml 文件定义的所有服务容器的运行状态,方便查看当前启动的容器情况。docker-compose logs:查看由 docker - compose.yml 文件定义的所有服务容器的日志输出,方便排查多个容器服务的运行问题。docker-compose restart:重启由 docker - compose.yml 文件定义的所有服务容器,使新的配置生效。docker-compose stop:停止由 docker - compose.yml 文件定义的所有服务容器,但保留容器的状态和数据。docker-compose start:启动之前停止的由 docker - compose.yml 文件定义的所有服务容器。docker secret create [秘密名称] [文件路径]:在 Docker Swarm 集群中创建一个秘密,用于存储敏感信息,如密码、密钥等。通过文件路径指定要存储的秘密内容。docker config create [配置名称] [文件路径]:在 Docker Swarm 集群中创建一个配置,用于存储应用程序的配置文件。通过文件路径指定要存储的配置内容。docker service create --name [服务名称] --replicas [副本数量] [镜像名称[:标签]]:在 Docker Swarm 集群中创建一个服务,指定服务名称、副本数量和使用的镜像。例如docker service create --name mynginx --replicas 3 nginx,创建一个名为 mynginx 的服务,包含 3 个 nginx 容器副本。docker service update --replicas [新副本数量] [服务名称]:更新 Docker Swarm 集群中服务的副本数量。例如docker service update --replicas 5 mynginx,将 mynginx 服务的副本数量更新为 5 个。docker service rm [服务名称]:删除 Docker Swarm 集群中的指定服务,停止并删除服务的所有容器副本。docker service scale [服务名称]=[副本数量]:调整 Docker Swarm 集群中服务的副本数量,与docker service update --replicas命令功能类似。例如docker service scale mynginx = 4,将 mynginx 服务的副本数量调整为 4 个。往期推荐【K8s学习】常用命令 100 条,建议收藏!【Windows学习】整理100条命令大全,效率拉满【网络学习】display查看命令大全
2025年07月10日
14 阅读
0 评论
0 点赞
2025-07-10
如何减少 Docker 日志大小,有效节省磁盘空间
Docker 是一个强大的容器化平台,它允许开发者在一个独立的环境中运行应用程序。虽然 Docker 提供了很多便利,但在实际使用过程中,日志文件可能会迅速增长,占用大量的磁盘空间。本文将详细介绍如何减少 Docker 日志大小,从而有效节省磁盘空间。Docker 日志机制Docker 使用日志驱动程序来管理和存储容器日志。默认情况下,Docker 使用 json-file 日志驱动程序,它将所有容器的标准输出和标准错误日志记录到 JSON 文件中。这些日志文件会不断增长,尤其是在高负载或长时间运行的容器中。检查当前日志设置在优化 Docker 日志之前,首先需要了解当前的日志设置。可以使用以下命令来查看当前 Docker 守护进程的配置:docker info | grep "Logging Driver"这将显示当前使用的日志驱动程序。默认情况下,通常是 json-file。日志轮转(Log Rotation)日志轮转是一种有效的减少日志大小的方法。它通过限制日志文件的大小和数量来防止日志文件无限制地增长。可以通过以下步骤来配置 Docker 的日志轮转。修改 Docker 守护进程配置编辑 Docker 守护进程的配置文件(通常位于 /etc/docker/daemon.json),添加以下内容:{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" }}默认的是:在这个示例中,max-size 设置为 10MB,max-file 设置为 3,这意味着每个日志文件最大为 10MB,最多保留 3 个文件。重新启动 Docker配置文件修改后,需要重新启动 Docker 守护进程以使更改生效:sudo systemctl restart docker使用其他日志驱动程序除了 json-file,Docker 还支持多种日志驱动程序,如 syslog、journald、gelf 等。选择适合的日志驱动程序可以更有效地管理日志。Syslog 日志驱动程序syslog 是一个常用的日志系统,可以集中管理和存储日志。使用 syslog 作为日志驱动程序可以将日志发送到集中式的日志服务器。在 /etc/docker/daemon.json 中配置 syslog:{ "log-driver": "syslog", "log-opts": { "syslog-address": "tcp://localhost:514", "tag": "{{.Name}}" }}重启 Docker 以应用更改:sudo systemctl restart docker使用 Docker Compose 配置日志对于使用 Docker Compose 管理的应用,可以在 docker-compose.yml 文件中配置日志选项:version: '3.8'services: web: image: nginx logging: driver: "json-file" options: max-size: "10m" max-file: "3"这种方法可以为每个服务单独配置日志策略,提供更灵活的日志管理。清理旧日志即使配置了日志轮转,仍可能需要手动清理旧日志以释放磁盘空间。以下是一些常用的日志清理方法。使用 docker system prunedocker system prune 命令可以清理未使用的容器、网络、图像和构建缓存:docker system prune -f手动删除日志文件可以手动删除 Docker 日志文件来释放空间。Docker 日志文件通常位于 /var/lib/docker/containers/<container-id>/ 目录下。使用以下命令找到并删除日志文件:sudo rm /var/lib/docker/containers/*/*.log日志聚合和外部存储将日志发送到外部存储或日志聚合系统(如 ELK Stack、Splunk)可以减少本地磁盘空间的占用。使用 ELK StackELK Stack(Elasticsearch, Logstash, Kibana)是一个常用的日志聚合和分析工具。可以通过以下步骤将 Docker 日志发送到 ELK Stack:安装并配置 ELK Stack。使用 gelf 日志驱动程序将日志发送到 Logstash:{ "log-driver": "gelf", "log-opts": { "gelf-address": "udp://logstash-server:12201", "tag": "{{.Name}}" }}在 logstash.conf 中配置 Logstash 以接收并处理 Docker 日志:input { gelf { port => 12201 }}output { elasticsearch { hosts => ["localhost:9200"] index => "docker-logs-%{+YYYY.MM.dd}" }}通过这种方法,可以将 Docker 日志集中存储和分析,而不占用本地磁盘空间。实时日志监控实时监控日志可以帮助快速发现和解决问题,避免日志文件无限制增长。常用的监控工具包括 Prometheus 和 Grafana。使用 Prometheus 和 Grafana安装并配置 Prometheus 和 Grafana。使用 node-exporter 收集 Docker 主机的系统指标,包括磁盘使用情况。在 Grafana 中配置仪表板,监控 Docker 日志文件的大小和增长率。通过实时监控,可以及时采取措施,防止日志文件过大。
2025年07月10日
11 阅读
0 评论
0 点赞
2025-07-06
Docker容器的配置和管理
https://mp.weixin.qq.com/s/F-yv_vvCO_qMlt_e_iuYlA1、安装Docker1.安装依赖包yum install -y yum-utils device-mapper-persistent-data lvm22.配置docker yum源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.安装dockeryum install -y docker-ce4.启动dockersystemctl daemon-reloadsystemctl enable docker --nowsystemctl restart docker图1 docker安装引擎mkdir /etc/docker -psudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": [ "https://docker.credclouds.com", "https://k8s.credclouds.com", "https://quay.credclouds.com", "https://gcr.credclouds.com", "https://k8s-gcr.credclouds.com", "https://ghcr.credclouds.com", "https://do.nark.eu.org", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.1panel.live", "https://docker.rainbond.cc" ], "data-root": "/etc/docker"}EOFsystemctl daemon-reloadsystemctl restart docker图2 配置镜像加速器图3 优化效果验证2、安装Portainer容器可视化管理mkdir -p /usr/local/docker/portainerdocker run -it -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/docker/portainer:/data portainer/portainer图4 安装portainer访问地址:http://10.0.0.100:9000图5 portainer可视化界面图6 创建容器 图7 生命周期管理3、利用Dockerfile新建一个容器新镜像mkdir custom_centos && cd custom_centos# 基础镜像FROM centos:7 # 设置学号变量ARG STUDENT_ID=2024031390 # 1. 更换为阿里云YUM源(解决网络问题)RUN rm -f /etc/yum.repos.d/*.repo && \ curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && \ curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo && \ sed -i 's|^#baseurl|baseurl|g' /etc/yum.repos.d/CentOS-Base.repo && \ sed -i 's|^mirrorlist|#mirrorlist|g' /etc/yum.repos.d/CentOS-Base.repo && \ sed -i 's|//[^/]*/|//mirrors.aliyun.com/|g' /etc/yum.repos.d/CentOS-Base.repo # 2. 安装基础工具(分步执行+错误处理)RUN yum makecache fast && \ yum install -y vim && \ yum install -y openssh-server && \ yum install -y net-tools bind-utils iproute lsof telnet traceroute nc tcpdump wget curl rsync # 3. 配置SSHRUN ssh-keygen -A && \ echo "root:${STUDENT_ID}" | chpasswd && \ sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config && \ sed -i 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config # 4. 清理缓存减小镜像大小RUN yum clean all && rm -rf /var/cache/yum # 设置容器入口CMD ["/usr/sbin/sshd", "-D"] # 暴露SSH端口EXPOSE 22docker build -t 2024031390:v1 --build-arg STUDENT_ID=2024031390 .图8 新建新镜像# 启动测试容器docker run -d -p 2222:22 --name test_ssh 2024031390:v1# 测试SSH登录 (密码:2024031390)ssh root@localhost -p 2222# 测试文件传输 (宿主机→容器)echo "hello test" > test.txtdocker cp /root/test.txt test_ssh:/root/# 测试文件传输 (容器→宿主机)docker exec test_ssh touch /root/a.txtdocker cp test_ssh:/root/a.txt ./图9 ssh登陆容器图10 容器和宿主机之间互传文件在node2-2024031390部署harborcurl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgztar xvf harbor-offline-installer-v2.5.0.tgzcd harbor # 修改配置文件cp harbor.yml.tmpl harbor.ymlsed -i 's/hostname: reg.mydomain.com/hostname: node2-2024031390/' harbor.ymlsed -i 's/port: 80/port: 8080/' harbor.yml./install.sh图11 harbor搭建 sudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": [ "https://docker.credclouds.com", "https://k8s.credclouds.com", "https://quay.credclouds.com", "https://gcr.credclouds.com", "https://k8s-gcr.credclouds.com", "https://ghcr.credclouds.com", "https://do.nark.eu.org", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.1panel.live", "https://docker.rainbond.cc" ], "data-root": "/etc/docker", "insecure-registries": ["10.0.0.120:8080"]}EOFsystemctl restart dockerdocker login 10.0.0.120:8080 -u admin -p Harbor12345docker tag 2024031390:v1 10.0.0.120:8080/library/2024031390:v1docker push 10.0.0.120:8080/library/2024031390:v1图12 将镜像推送到Harbor仓库图13 harbor查看镜像4、在node1上新建一个容器,通过与宿主机的端口1000.1001,1002映射分别访问“首页是班级+姓名”的个性化网站、“小鸟飞飞”html5游戏网站和“Nginx默认首页”网站。mkdir -p /home/2024031390/nginx/{sites,conf}mkdir /home/2024031390/nginx/sites/personalcat > /home/2024031390/nginx/sites/personal/index.html <<EOF<!DOCTYPE html><html><head> <title>my site</title></head><body> <h1>I am 2024031390 , welcome to cloud computing class</h1></body></html>EOFmkdir /home/2024031390/nginx/sites/gamecd /home/2024031390/nginx/sites/gameunzip xiaoniaofeifei.zipcat > /home/2024031390/nginx/conf/default.conf <<EOF# 默认网站 (1002端口)server { listen 1002; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; }} # 个人网站 (1000端口)server { listen 1000; server_name localhost; location / { root /usr/share/nginx/personal; index index.html index.htm; }} # 游戏网站 (1001端口)server { listen 1001; server_name localhost; location / { root /usr/share/nginx/game; index index.html index.htm; }}EOFdocker run -d \ --name nginx-multisite \ -p 1000:1000 \ -p 1001:1001 \ -p 1002:1002 \ -v /home/2024031390/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf \ -v /home/2024031390/nginx/sites/personal:/usr/share/nginx/personal \ -v /home/2024031390/nginx/sites/game:/usr/share/nginx/game \ nginx:latest图14 多端口多网站访问实例启动在物理机上打开浏览器测试验证:图15 nginx默认首页图16 个人网站 图17 小鸟飞飞的小游戏5、通过docker-compose编排工具构建并运行一个综合应用程序,至少含有2个关联容器。mkdir wordpresscd wordpressvi docker-compose.ymlversion: '3.8' services: # WordPress 前端服务 wordpress: image: wordpress:latest container_name: wp-app restart: always ports: - "8080:8081" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: Admin@123 WORDPRESS_DB_NAME: wordpress volumes: - wordpress_data:/var/www/html depends_on: - db networks: - app-network # MySQL 数据库服务 db: image: mysql:8.0 container_name: wp-db restart: always environment: MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: Admin@123 MYSQL_ROOT_PASSWORD: Admin@123 volumes: - db_data:/var/lib/mysql networks: - app-network # 定义存储卷volumes: wordpress_data: db_data: # 定义网络networks: app-network: driver: bridgedocker-compose up -ddocker-compose ps图18 容器启动访问应用程序:http://10.0.0.100:8080图19 wordpress站点
2025年07月06日
9 阅读
0 评论
0 点赞
2025-07-06
Docker使用教程和镜像加速
字数 853,阅读大约需 5 分钟安装Docker官方安装脚本:curl -fsSL https://get.docker.com | sh国内一键安装脚本:bash <(curl -sSL https://emohe.cn/docker.sh)手动离线安装Docker下载Docker:• 官方文件下载地址:https://download.docker.com/linux/static/stable/x86_64/• 清华大学下载地址 :https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/解压文件(替换版本号):tar xzvf docker-26.1.3.tgz sudo mv docker/* /usr/local/bin/创建Docker服务文件:sudo vim /etc/systemd/system/docker.service添加以下内容:[Unit]Description=Docker Application Container EngineAfter=network-online.target firewalld.serviceWants=network-online.target[Service]Type=notifyExecStart=/usr/local/bin/dockerdExecReload=/bin/kill -s HUP $MAINPIDRestart=alwaysRestartSec=2StartLimitBurst=3StartLimitInterval=60sLimitNOFILE=infinityLimitNPROC=infinityLimitCORE=infinityDelegate=yesKillMode=process[Install]WantedBy=multi-user.target启动并启用Docker服务:sudo chmod +x /usr/local/bin/dockerdsudo systemctl daemon-reloadsudo systemctl start dockersudo systemctl enable docker查看版本:docker -v手动离线安装Docker-compose国内环境手动安装Docker-compose:点这里手动下载文件 上传到服务器的/usr/local/bin目录重命名为docker-compose:sudo cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose增加执行权限:chmod +x /usr/local/bin/docker-compose验证安装:docker-compose --version注意:由于是以二进制文件安装的docker-compose,运行命令需带-,例如:docker-compose up -dDocker Hub 镜像加速国内拉取镜像有时会遇到困难,对于学习或者开发者来说很难受,此时可以配置镜像加速。配置加速地址Ubuntu 16.04+、Debian 8+、CentOS 7+:创建或修改/etc/docker/daemon.json:sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<EOF{ "registry-mirrors": [ "https://docker.xuanyuan.me", "https://docker.xuanyuan.dev" ]}EOF重启服务:sudo systemctl daemon-reloadsudo systemctl restart docker提示:若不方便重启,可在拉取镜像时指定加速地址,示例:docker pull docker.xuanyuan.dev/library/mysql:5.7说明:library代表官方镜像,用户镜像需替换为对应用户名。Docker Desktop 配置对于Windows系统的Docker Desktop用户,点击右上角设置,找到Docker Engine并修改配置,示例:{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "registry-mirrors": [ "https://docker.xuanyuan.me", "https://docker.xuanyuan.dev" ]}点击右下角Apply & restart保存并重启。检查加速是否生效查看docker系统信息:docker info若结果中显示配置的加速地址(如Registry Mirrors下包含https://docker.xuanyuan.me和https://docker.xuanyuan.dev),则配置成功。Docker最新稳定加速源列表提供者镜像加速地址说明加速类型轩辕镜像(专业版)https://docker.xuanyuan.dev付费&稳定&可选国内cdnDocker Hub轩辕镜像(免费版)https://docker.xuanyuan.me免费&无限制Docker Hub华为云https://***.mirror.swr.myhuaweicloud.com需登录分配Docker Hub腾讯云https://mirror.ccs.tencentyun.com仅限腾讯云机器Docker Hub南京大学https://ghcr.nju.edu.cnghcr加速ghcr南京大学https://k8s.nju.edu.cnk8s加速k8sDocker常用命令功能命令说明编译镜像docker build -t 镜像名 .先docker login登录Docker Hub推送镜像docker push 用户名/镜像名需先标记镜像:docker tag 53321f173e 用户名/镜像名查看容器docker ps-a查看包括已停止的容器容器资源占用docker stats查看所有容器资源占用进入容器内部docker exec -it 容器名 sh结尾也可使用/bash创建容器网络docker network create my-networkmy-network为网络名称停止容器docker stop 容器名或ID-启动容器docker start 容器名或ID-删除镜像docker rmi -f 镜像名或ID-清除资源docker system prune清除所有未使用资源(容器、网络、镜像、缓存)
2025年07月06日
10 阅读
0 评论
0 点赞
1
2