docker安装一系列镜像

news/2024/6/3 19:36:23 标签: docker, 容器, 运维

启动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.niftyadmin.cn/n/5385334.html

相关文章

leetcode 105. 从前序与中序遍历序列构造二叉树【构造二叉树】

原题链接:105. 从前序与中序遍历序列构造二叉树 题目描述: 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 输入输出描述&…

Java+SpringBoot+Vue的大学生就业信息管理系统

一、项目介绍 基于Java (spring-boot)的大学生就业信息管理系统分为三个角色:管理员、企业、求职者。 功能:登录、注册功能、学生信息管理、企业信息管理、岗位分类管理、学历信息管理、应聘信息管理、求职者信息管理、招聘信息管理。 二、作品包含 三、项目技术 后…

【计算机网络】一些乱七八糟内容

MAC Media Access Control 用于在局域网(LAN)或广域网(WAN)中实现设备自动接入网络 "载波侦听多路访问"(Carrier Sense Multiple Access) CSMA/CD 是CSMA的升级版本,加入了序列号检测机制。 CSMA/CA 是CSM…

基于微信小程序的校园外卖平台设计与实现

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

Unity架构师经验分享:基于状态机的逻辑控制

在Unity中,状态机是一种非常重要的设计模式,它可以帮助开发者更好地管理游戏中的逻辑控制。在本文中,我们将详细解答基于状态机的逻辑控制,帮助Unity架构师进阶。 1. 什么是状态机? 状态机是一种用于描述对象在不同状…

singularity-ce-4.1.0 + go 完整安装步骤,及报错解决

singularity-ce-4.1.0 + go 1.20 完整安装步骤. 解决bug: checking: host Go compiler (at least version 1.13)... not found! mconfig: could not complete configuration服务器基础环境: 阿里云服务器: => lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-n…

面试题 17.23. 最大黑方阵

文章目录 题意思路代码 题意 题目链接 找到最长的边都是0的正方形&#xff0c;如果长度想等&#xff0c;尽可能起点小 思路 暴力剪枝dp &#xff0c;预处理每个点的上下左右最长长度&#xff0c;再去枚举长度去转移 代码 // 力大飞砖 class Solution { public:vector<…

[服务器-数据库]MongoDBv7.0.4不支持ipv6访问

文章目录 MongoDBv7.0.4不支持ipv6访问错误描述问题分析错误原因解决方式 MongoDBv7.0.4不支持ipv6访问 错误描述 报错如下描述 Cannot connect to MongoDB.No suitable servers found: serverSelectionTimeoutMS expired: [failed to resolve 2408]问题分析 首先确定其是…