docker安装一系列镜像

news2025/1/17 21:41:24

启动docker

systemctl start docker

docker 启动已经停止的容器

docker start idOrName

 PS:idOrName为容器的id或者名称

1、安装mysql镜像

拉取mysql5.7的镜像

docker pull mysql:5.7

查看镜像

docker images

启动mysql

#启动mysql
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

查询容器id为39b1d9706a03 内的文件目录

docker exec 39b1d9706a03 ls -a /

复制配置文件 

docker cp mysql:/etc/my.cnf /home/hff/software/docker/mysql/conf/

打开/home/hff/software/docker/mysql/conf/my.cnf 文件,增加以下内容。

# 配置文件中添加如下内容,注意是在在[mysqld]目录中
log-bin=mysql-bin  # 开启 binlog
binlog-format=ROW  # 选择 ROW 模式
server-id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复

删除原 MySQL 容器,通过新配置创建新的容器。 

# 删除运行中的 MySQL 容器
docker rm -f mysql

# 运行 Docker 容器命令
# /etc/localtime 时间同步
# /docker/software/mysql/conf 同步配置文件,上面配置的内容就会覆盖容器中的配置文件
# /docker/software/mysql/log 同步日志目录
# /docker/software/mysql/data 同步 MySQL 的一些文件内容(对数据进行备份)
# MYSQL_ROOT_PASSWORD=root 默认 root 的密码是 root
docker run --name mysql \
-p 3306:3306 \
-v /home/hff/software/docker/mysql/conf/:/etc \
-v /home/hff/software/docker/mysql/log:/var/log \
-v /home/hff/software/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

进入到 MySQL 的命令行模式来给 root 账号授权所有 ip 能够访问。

# 使用 MySQL 容器中的命令行
docker exec -it mysql /bin/bash

# 使用 MySQL 命令打开客户端:
mysql -uroot -proot --default-character-set=utf8

# 接着创建一个账户,该账号所有 IP 都能够访问
grant all privileges on *.* to 'root' @'%' identified by 'root';

# 刷新生效
FLUSH PRIVILEGES;

2、安装redis镜像

拉取镜像

docker pull redis

本地创建一个配置文件/home/hff/software/docker/redis/conf/redis.conf

bind 0.0.0.0
protected-mode no
port 6379
daemonize no
tcp-backlog 511
timeout 0
tcp-keepalive 0
loglevel notice
logfile ""
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
requirepass root

 创建 redis 容器,并挂载配置

docker run --name redis -p 6379:6379 -v /home/hff/software/docker/redis/data:/data -v /home/hff/software/docker/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf

  • –name : 容器名称
  • -p 端口映射 宿主机:容器
  • -v 挂载自定义配置 自定义配置:容器内部配置
  • -d 后台运行
  • redis-server 使用指定的配置文件启动

进入redis

docker exec -it redis redis-cli

3、安装nacos

拉取镜像

docker pull nacos/nacos-server:v2.1.1

创建挂载目录

mkdir -p /home/hff/software/docker/nacos/conf
mkdir -p /home/hff/software/docker/nacos/logs
mkdir -p /home/hff/software/docker/nacos/data

PS: -p 作用是在创建多级文件时,不存在某一级文件就会创建,存在就使用原文件

启动nacos,复制相关文件到挂载目录

docker run --name nacos -d -p 8848:8848 -e MODE=standalone  nacos/nacos-server:v2.1.1
  • docker run -d :启动容器, -d 表示后台启动并返回容器id
  • –name nacos :容器名称为nacos
  • -p 8848:8848 :容器相关端口号,“:”前为宿主机访问启动容器端口号,“:”后为容器端口号
  • -e MODE=standalone : 以单机版启动
  • nacos/nacos-server:v2.1.1 :启动容器的nacos镜

(1)复制容器配置文件到宿主机

docker cp nacos:/home/nacos/conf/ /home/hff/software/docker/nacos
docker cp nacos:/home/nacos/logs/ /home/hff/software/docker/nacos
docker cp nacos:/home/nacos/data/ /home/hff/software/docker/nacos

PS:这里的本地文件没有加上conf,如果加上了会在conf下再创建一个conf,后面的同理。

启动nacos

docker run -d --name nacos \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--env MODE=standalone \
--env NACOS_AUTH_ENABLE=true \
-v /home/hff/software/docker/nacos/conf:/home/nacos/conf \
-v /home/hff/software/docker/nacos/logs:/home/nacos/logs \
-v /home/hff/software/docker/nacos/data:/home/nacos/data \
nacos/nacos-server:v2.1.1
-d 表示运行在后台,--name 指定名称为nacos
-p 8848:8848  前者为暴露给外部访问的端口,后者为nacos容器端口
-p 9848:9848 9848是nacos2.0.0版本以上必须要加上端口映射
-p 9849:9849 9849是nacos2.0.0版本以上必须要加上端口映射
--env MODE=standalone  nacos以单机版启动,默认为cluster(集群)
--env NACOS_AUTH_ENABLE=true 如果使用官方镜像,请在启动docker容器时,添加如下环境变量
-v /home/hff/software/docker/nacos/conf:/home/nacos/conf  nacos 配置文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
-v /home/hff/software/docker/nacos/logs:/home/nacos/logs  nacos 日志文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
-v /home/hff/software/docker/nacos/data:/home/nacos/data  nacos 数据文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
nacos/nacos-server:v2.1.1   指定 docker nacos 版本

测试是否能成功访问

http://192.168.253.110:8848/nacos

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

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

相关文章

PostgreSQL技术内幕(十三)探究MPP数据库分布式查询分发Dispatcher

Dispatcher(分布式查询分发器)是MPP数据库的核心组件,所有的查询任务都要经过其进行分发,起着沟通用户到协调者(Coordinator,即QD)和执行调度的关键作用。 在这次的直播中,我们为大…

Opencv中的RNG-随机绘图

在OpenCV中,RNG是一个随机数生成器类,用于生成各种类型的随机数,包括均匀分布或高斯分布的整数和浮点数。RNG类的实例化时可以接受一个无符号整数作为种子值,这个种子值决定了随机数生成序列的起点,相同的种子值将产生…

分布式id实战

目录 常用方式 特征 潜在问题 信息安全 高性能 UUID 雪花算法 数据库生成 美团Leaf方案 Leaf-segment 数据库方案 Leaf-snowflake 方案 常用方式 uuid雪花算法数据库主键 特征 全局唯一趋势递增信息安全 潜在问题 信息安全 如果id连续递增, 容易被爬虫, 批量下…

【动态规划】【字符串】2167移除所有载有违禁货物车厢所需的最少时间

作者推荐 【深度优先搜索】【树】【有向图】【推荐】685. 冗余连接 II 本文涉及知识点 动态规划汇总 LeetCode2167移除所有载有违禁货物车厢所需的最少时间 给你一个下标从 0 开始的二进制字符串 s ,表示一个列车车厢序列。s[i] ‘0’ 表示第 i 节车厢 不 含违…

自动化上位机开发C#100例:如何用面向对象的方式封装雷赛运动控制卡EtherCAT总线卡(C#代码)

自动化上位机开发C#100例:雷赛运动控制卡EtherCAT总线卡C#封装类 文章目录 LTDMC.dll下载LTDMC.cs LTDMC.dll C#调用封装下载ICard.cs 运动控制卡接口Card.cs 运动控制卡抽象类CardLTDMC.cs 雷赛运动控制卡EtherCAT总线卡实现类CardList.cs 总线卡列表封装 LTDMC.dll下载 最新…

MLP-Mixer: AN all MLP Architecture for Vision

发表于NeurIPS 2021, 由Google Research, Brain Team发表。 Mixer Architecture Introduction 当前的深度视觉结构包含融合特征(mix features)的层:(i)在一个给定的空间位置融合。(ii)在不同的空间位置,或者一次融合所有。在CNN中,(ii) 是由N x N(N &g…

golangci-lint如何关闭typecheck

https://github.com/golangci/golangci-lint/issues/2912 typecheck是go源码的校验,无法通过.golangci.yml配置关闭 可以直接在golangci-lint源码层面关闭typecheck

Jmeter教程-JMeter 环境安装及配置

Jmeter教程 JMeter 环境安装及配置 在使用 JMeter 之前,需要配置相应的环境,包括安装 JDK 和获取 JMeter ZIP 包。 安装JDK 1.JDK下载 示例环境为Windows11环境,读者应根据实际环境下载JDK的安装包。 JDK下载地址: Java21 下载 …

windows自带录屏指南,让视频制作更简单!

随着网络技术的发展,录制电脑屏幕已成为了许多用户的常见需求,无论是录制游戏画面、软件教程还是制作演示视频,一款好用的录屏工具都至关重要。windows操作系统为用户提供了多种录屏工具,无需额外安装软件。本篇文章将介绍windows…

Guitar Pro 8.1 Mac 2024最新下载、安装、激活、换机图文教程

Guitar Pro 8是吉他手的终极工具箱,也是阅读和编辑乐谱的领先软件。26 年来,Guitar Pro 一直在帮助世界各地的音乐家学习弹吉他、创作歌曲以及转录和编辑歌集。 Guitar Pro是一款专业的吉他制谱软件,现在已更新至Guitar Pro8,新增了支持添加音频轨道、支…

19-树-填充每个节点的下一个右侧节点指针 II

这是树的第19篇算法,力扣链接。 给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。…

从入门到精通:AI绘画与修图实战指南

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在这篇文章中,我们将深入探讨如何利…

JAVA高并发——人手一支笔:ThreadLocal

文章目录 1、ThreadLocal的简单使用2、ThreadLocal的实现原理3、对性能有何帮助4、线程私有的随机数发生器ThreadLocalRandom4.1、反射的高效替代方案4.2、随机数种子4.3、探针Probe的作用 除了控制资源的访问,我们还可以通过增加资源来保证所有对象的线程安全。比如…

2024年数学建模竞赛汇总——时间轴

美赛已过,好多小伙伴表示已经错过,不清楚什么时候报名,什么时候准备,其实每年数学建模比赛有很多个,各大比赛的级别、报名时间、参赛对象等要求什么呢?小编从竞赛说明、竞赛级别、是否允许跨校、报名费用、…

MySQL基础学习

MySQL基础 注意:本文的图片截图自尚硅谷MySQL笔记。 一:基本概述: 什么是数据库: 数据库是一种用来存储和管理数据的系统。它是一个组织化的数据集合,可以通过计算机系统进行访问、管理和更新。数据库可以存储各种…

【C++】vector模拟实现+迭代器失效

vector模拟实现 成员变量定义默认成员函数构造函数 迭代器范围for、对象类型匹配原则 容量操作sizeemptycapacityreserve成员变量未更新memcpy值拷贝 resize内置类型的构造函数 数据访问frontbackoperator[ ] 数据修改操作push_backpop_backswapclearinsertpos位置未更新无返回…

Atcoder ABC340 C - Divide and Divide

Divide and Divide(分而治之) 时间限制:2s 内存限制:1024MB 【原题地址】 所有图片源自Atcoder,题目译文源自脚本Atcoder Better! 点击此处跳转至原题 【问题描述】 【输入格式】 【输出格式】 【样例1】 【样例…

Unity2023.1.19没有PBR Graph?

Unity2023.1.19没有PBR Graph? 关于Unity2023.1.19没有PBR graph的说法,我没看见管方给出的答案,百度则提到了Unity2020版之后Shader Graph的“全新更新”,之前也没太注意版本的区别,以后项目尽量都留心一下。 之前文章说过,孪生智慧项目推荐使用URP渲染管线,以上的截…

基于学习的参数化查询优化方法

一、背景介绍 参数化查询是指具有相同模板,且只有谓词绑定参数值不同的一类查询,它们被广泛应用在现代数据库应用程序中。它们存在反复执行动作,这为其性能优化提供了契机。 然而,当前许多商业数据库处理参数化查询的方法仅仅只…

JavaScript编写一个倒计时

关键js代码 <script>function countdown() {var targetDate new Date("2024-02-20 12:00:00");var currentDate new Date();var timeDiff targetDate.getTime() - currentDate.getTime();var days Math.floor(timeDiff / (1000 * 60 * 60 * 24));var hours…