docker 实战练习1

devtools/2025/2/7 9:32:41/

安装部署dockerdocker-compose

#卸载旧版本
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2# 官方yum源
sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo# 阿里云yum源
sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#安装docker引擎(指定20.10.24版本)
yum install -y docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io# 启动Docker服务
sudo systemctl start docker
# 设置Docker开机自启
sudo systemctl enable docker 
#查看Docker服务的状态
sudo systemctl status docker#添加镜像加速器
# 创建目录
mkdir -p /etc/docker
# 复制内容
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["http://hub-mirror.c.163.com","https://mirrors.tuna.tsinghua.edu.cn","http://mirrors.sohu.com","https://ustc-edu-cn.mirror.aliyuncs.com","https://2yzmpomi.mirror.aliyuncs.com","https://ccr.ccs.tencentyun.com","https://docker.m.daocloud.io","https://docker.awsl9527.cn","https://do.nark.eu.org","https://dc.j8.work","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://docker.1panel.live/","https://noohub.ru","https://huecker.io","https://dockerhub.timeweb.cloud"]
}
{"dns": ["8.8.8.8", "8.8.4.4"]
}
EOF
# 重新加载配置
systemctl daemon-reload
# 重启Docker
systemctl restart docker#通过运行hello-world 映像来验证是否正确安装了Docker Engine 。
sudo docker run hello-world#显示 Docker 系统信息
docker info#安装docker-compose 编排容器工具
#打开github 下载地址:https://github.com/docker/compose/releases/
#上传服务器/usr/bin/目录下面 并改名为docker-compose
mv 文件 /usr/bin/docker-compose   
#赋予执行权限
sudo chmod +x /usr/bin/docker-compose
#检查是否安装成功
docker-compose -v

命令版本

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["http://hub-mirror.c.163.com","https://mirrors.tuna.tsinghua.edu.cn","http://mirrors.sohu.com","https://ustc-edu-cn.mirror.aliyuncs.com","https://2yzmpomi.mirror.aliyuncs.com","https://ccr.ccs.tencentyun.com","https://docker.m.daocloud.io","https://docker.awsl9527.cn","https://do.nark.eu.org","https://dc.j8.work","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://docker.1panel.live/","https://noohub.ru","https://huecker.io","https://dockerhub.timeweb.cloud"]
}
{"dns": ["8.8.8.8", "8.8.4.4"]
}
EOF
systemctl daemon-reload
systemctl restart docker
sudo docker run hello-world

docker-compose编排mysql 、tomcat 、nginx 、redis脚本

#!/bin/bashmkdir my_project
cd my_projectcat > docker-compose.yml <<EOF
version: '3'
services:mysql:image: mysql:5.7container_name: mysqlenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: mydatabasevolumes:- ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sqlports:- "3306:3306"tomcat:image: tomcat:9.0container_name: tomcatvolumes:- ./tomcat/webapps:/usr/local/tomcat/webappsports:- "8080:8080"depends_on:- mysqlnginx:image: nginx:latestcontainer_name: nginxvolumes:- ./nginx/default.conf:/etc/nginx/conf.d/default.confports:- "8084:8084"depends_on:- tomcatredis:image: redis:latestcontainer_name: redisvolumes:- ./redis/redis.conf:/usr/local/etc/redis/redis.confports:- "6379:6379"
EOFmkdir -p nginx
cat > nginx/default.conf <<EOF
server {listen 8084;server_name localhost;location / {proxy_pass http://tomcat:8080;proxy_set_header Host \$host;proxy_set_header X-Real-IP \$remote_addr;proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto \$scheme;}
}
EOFmkdir -p tomcat/webapps/ROOT/
cat > tomcat/webapps/ROOT/index.jsp <<EOF
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Hello World</title>
</head>
<body><h1>Hello, World!</h1>
</body>
</html>
EOFmkdir -p mysql
cat > mysql/init.sql <<EOF
CREATE DATABASE IF NOT EXISTS mydatabase;
USE mydatabase;
CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,email VARCHAR(255) NOT NULL
);
EOFmkdir -p redis
cat > redis/redis.conf <<EOF
bind 0.0.0.0
protected-mode no
port 6379
EOFdocker-compose up -d

项目搭建

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#查看当前防火墙开放的端口
sudo firewall-cmd --list-ports
#将端口 8081 添加到防火墙的 public 区域,并且设置为永久生效。
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
#重新加载防火墙配置,使新的规则生效。
sudo firewall-cmd --reload#关闭selinux 安全策略
# 临时
setenforce 0  
# 永久 注意需要重启才能生效。
sed -i 's/enforcing/disabled/' /etc/selinux/config  #进入tomcat ROOT目录
cd tomcat/webapps/ROOT/
#在里面部署自己的项目

浏览器访问 主机IP:8080   就可以访问自己搭建的项目  


http://www.ppmy.cn/devtools/156770.html

相关文章

【C++】多态详细讲解

本篇来聊聊C面向对象的第三大特性-多态。 1.多态的概念 多态通俗来说就是多种形态。多态分为编译时多态(静态多态)和运⾏时多态(动态多态)。 编译时多态&#xff1a;主要就是我们前⾯讲的函数重载和函数模板&#xff0c;他们传不同类型的参数就可以调⽤不同的函数&#xff0c;通…

w192中国陕西民俗网的设计与实现

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…

求解大规模单仓库多旅行商问题(LS-SDMTSP)的成长优化算法(Growth Optimizer,GO),MATLAB代码

一、问题定义 大规模单仓库多旅行商问题&#xff08;Large-Scale Single-Depot Multi-Traveling Salesman Problem&#xff0c;简称 LS-SDMTSP&#xff09;是组合优化领域中极具挑战性的经典问题。假设存在一个单一仓库&#xff0c;它既是所有旅行商的出发地&#xff0c;也是最…

kamailio-ACC、ACC_JSON 和 ACC_RADIUS 的区别

ACC、ACC_JSON 和 ACC_RADIUS 的区别 ACC、ACC_JSON 和 ACC_RADIUS 都是 Kamailio 中用于计费&#xff08;Accounting&#xff09;的模块&#xff0c;但它们的功能和后端支持有所不同。以下是它们的区别及案例说明&#xff1a; 1. ACC 模块 功能&#xff1a;ACC 模块是 Kamai…

Spring Boot 2 快速教程:WebFlux处理流程(五)

WebFlux请求处理流程 下面是spring mvc的请求处理流程 具体步骤&#xff1a; 第一步&#xff1a;发起请求到前端控制器(DispatcherServlet) 第二步&#xff1a;前端控制器请求HandlerMapping查找 Handler &#xff08;可以根据xml配置、注解进行查找&#xff09; 匹配条件包括…

postgresql-COALESCE函数、NULLIF函数、NVL函数使用

COALESCE函数 COALESCE函数是返回参数中的第一个非null的值&#xff0c;它要求参数中至少有一个是非null的; select coalesce(1,null,2),coalesce(null,2,1),coalesce(null,null,null); NULLIF(ex1,ex2)函数 如果ex1与ex2相等则返回Null&#xff0c;不相等返回第一个表达式的值…

C语言链接阶段详解

我们编写的程序最初并不可以直接执行&#xff0c;是因为我们编写的程序是源代码&#xff0c;源代码所在文件就是源文件&#xff0c;源文件不可以直接运行是因为计算机只能识别二进制指令&#xff0c;所以源文件会经过两个步骤&#xff0c;就是编译和链接&#xff0c;最终生成可…

云计算——AWS Solutions Architect – Associate(saa)1、什么是云,AWS介绍

什么是云? 什么是云? 云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式&#xff0c;通常涉及通过互联网来提供动态易护展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。 简单理解为&#xff1a;云是 共享资源&#xff0c;按需付费&#xff0…