详解 Docker 安装部署

1. docker 安装

第一步:移除老版本

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

第二步:设置国内镜像

# 默认是国外的,这里使用阿里云的镜像
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述

第三步:安装依赖的库

yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

在这里插入图片描述

第四步:

# 更新yum软件包索引
yum makecache fast

在这里插入图片描述

# 安装最新版本
yum install docker-ce docker-ce-cli containerd.io

在这里插入图片描述
在这里插入图片描述
出现一下提示

No package docker-ce available.
No package docker-ce-cli available.
No package containerd.io available.
No package docker-compose-plugin available.
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2. 启动docker

systemctl enable docker && systemctl start docker

在这里插入图片描述

配置Docker镜像加速(不配也行)

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}

其他命令

# 重启
systemctl restart docker
#查看信息
docker info
# 查看版本
docker -v
# 停止docker
systemctl stop docker

# 查看docker状态
systemctl status docker

在这里插入图片描述

卸载

yum remove docker-ce-24.0.5 docker-ce-cli-24.0.5 containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

3. redis

docker  run --name redis -d  -p 6379:6379  -v /etc/redis/conf/redis.conf:/etc/redis/redis.conf -v /etc/redis/data:/data  redis  redis-server /etc/redis/redis.conf --appendonly yes 
docker exec -it redis /bin/bash 默认进入data文件夹
docker exec -it redis redis-cli
重启redis
docker restart redis

设置redis跟随docker启动
docker update redis --restart=always

4. mysql

docker run -p 3306:3306 --privileged=true --name mysql 
-v /data/mysql/data:/var/lib/mysql 
-v /data/mysql/logs:/var/log/mysql 
-v /data/mysql/conf:/etc/mysql/conf.d 
-e MYSQL_ROOT_PASSWORD=liaowei@619 
-d mysql:latest
进入控制台
docker exec -it c6c8e8e7940f /bin/bash
登录
mysql -u root -p123456
查询用户
select host,user,plugin,authentication_string from mysql.user;
更新密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'
创建canal用户
CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

5. canal

canal-admin
 docker pull canal/canal-admin
canal-server
 docker pull canal/canal-server
下载指定脚本组装docker命令来启动
wget https://raw.githubusercontent.com/alibaba/canal/master/docker/run_admin.sh
sudo sh run_admin.sh -e server.port=8089 \
        -e canal.adminUser=admin \
        -e canal.adminPasswd=canal@619 \
        -e spring.datasource.address=120.77.64.190:3306 \
        -e spring.datasource.database=erp-user \
        -e spring.datasource.username=root \
        -e spring.datasource.password=canal@619 
或者 直接docker 命令 启动
sudo docker run -it --name canal-admin \
    -e server.port=8089 \
    -e canal.adminUser=admin \
    -e canal.adminPasswd=canal@619 \
    -e spring.datasource.address=120.77.XX.XX:3306 \
    -e spring.datasource.database=db \
    -e spring.datasource.username=canal \
    -e spring.datasource.password=canal@619 \
    -h 120.77.64.190 \
    --net=host \
    -m 1024m \
    -d canal/canal-admin:v1.1.5
下载脚本 组装docker命令来启动
wget https://raw.githubusercontent.com/alibaba/canal/master/docker/run.sh 

sudo sh run.sh -e canal.admin.manager=127.0.0.1:8089 \
         -e canal.admin.port=11110 \
         -e canal.port=11121 \
         -e canal.metrics.pull.port=11122 \
         -e canal.admin.user=admin \
         -e canal.admin.passwd=6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
或者直接docker命令启动
docker run -it --name=canal-server \
    -e canal.admin.manager=172.21.XX.XX:8089 \
    -e canal.admin.port=11110 \
    -e canal.port=11121 \
    -e canal.metrics.pull.port=11122 \
    -e canal.admin.user=admin \
    -e canal.admin.passwd=6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 \
    -h 172.21.137.55 \
    --net=host \
    -d canal/canal-server:v1.1.4

6. nacos

下载镜像
l'l
创建两个文件夹和一个配置文件
在这里插入图片描述
在这里插入图片描述
配置文件

erver.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848

spring.datasource.platform=mysql
db.num=1
# 自己的数据库地址/端口,用户名密码
db.url.0=jdbc:mysql://43.156.6.20:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=liaowei@619 #密码

nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=tru
nacos.core.auth.enabled=true
nacos.core.auth.username=自己的用户名
nacos.core.auth.password=自己的密码

docker  run \
	--name nacos -d \
	-p 8848:8848 \
	--privileged=true \
	--restart=always \
	-e JVM_XMS=256m \
	-e JVM_XMX=256m \
	-e MODE=standalone \
	-e PREFER_HOST_MODE=hostname \
	-v /home/soft/nacos/logs/:/home/nacos/logs/ \
	-v /home/soft/nacos/data/:/home/nacos/data/ \
	-v /home/soft/nacos/conf/application.properties:/home/nacos/conf/application.properties \
	nacos/nacos-server

7. neo4j

docker run -d --name container_name \  //-d表示容器后台运行 --name指定容器名字
-p 7474:7474 -p 7687:7687 \  //映射容器的端口号到宿主机的端口号
-v /home/neo4j/data:/data \  //把容器内的数据目录挂载到宿主机的对应目录下
-v /home/neo4j/logs:/logs \  //挂载日志目录
-v /home/neo4j/conf:/var/lib/neo4j/conf   //挂载配置目录
-v /home/neo4j/import:/var/lib/neo4j/import \  //挂载数据导入目录
--env NEO4J_AUTH=neo4j/password \  //设定数据库的名字的访问密码
neo4j //指定使用的镜像

docker run -d --name neo4j -p 7474:7474 -p 7687:7687 -v /home/neo4j/data:/data -v /home/neo4j/logs:/logs -v /home/neo4j/conf:/var/lib/neo4j/conf -v /home/neo4j/import:/var/lib/neo4j/import --env NEO4J_AUTH=none  neo4j

8. docker 部署服务

登录远程仓库
docker login 远程仓库地址
打包
docker build -t xxx:latest -f Dockfile .
标记本地镜像,将其归入某一仓库
docker tag imageID  远程仓库/yunhe/xxx:latest
推送到远程仓库
docker push 远程仓库/yunhe/xxx:latest

9.Docker安装Kafka

首先创建一个网络
app-tier:网络名称
–driver:网络类型为bridge

docker network create app-tier --driver bridge

1、安装zookeeper

Kafka依赖zookeeper所以先安装zookeeper
-p:设置映射端口(默认2181)
-d:后台启动

docker run -d --name zookeeper-server \
    --network app-tier \
    -e ALLOW_ANONYMOUS_LOGIN=yes \
    bitnami/zookeeper:latest

查看zookeeper容器日志(可省略)

docker logs -f zookeeper

2、安装Kafka

安装并运行Kafka, –name:容器名称
-p:设置映射端口(默认9092 )
-d:后台启动 ALLOW_PLAINTEXT_LISTENER任何人可以访问 KAFKA_CFG_ZOOKEEPER_CONNECT链接的zookeeper
KAFKA_ADVERTISED_HOST_NAME当前主机IP或地址(重点:如果是服务器部署则配服务器IP或域名否则客户端监听消息会报地址错误)
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.101:9092 \

docker run -d --name kafka-server \
    --network app-tier \
    -p 9092:9092 \
    -e ALLOW_PLAINTEXT_LISTENER=yes \
    -e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 \
    -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.101:9092 \
    bitnami/kafka:latest

查看kafka容器日志(可省略)

docker logs -f kafka

3、kafka-manager图形化管理工具(不好用)

kafka-manager 只是一个简单的页面,浏览kafka中的信息,没有实际操作功能。
-p:设置映射端口(默认9000) –name:容器名称
-ZK_HOSTS:zookeeper服务地址,多个可用逗号隔开

3、kafka-map图形化管理工具(好用)

图形化管理工具 访问地址:
http://服务器IP:9001/ DEFAULT_USERNAME:默认账号admin
DEFAULT_PASSWORD:默认密码admin

Git
地址:https://github.com/dushixiang/kafka-map/blob/master/README-zh_CN.md

docker run -d --name kafka-map \
    --network app-tier \
    -p 9001:8080 \
    -v /opt/kafka-map/data:/usr/local/kafka-map/data \
    -e DEFAULT_USERNAME=admin \
    -e DEFAULT_PASSWORD=admin \
    --restart always dushixiang/kafka-map:latest

Minio

docker search minio
docker pull minio/minio
docker run -d -p 9000:9000 --name=minio --restart=always -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin123456" -v /home/data:/data -v /home/config:/root/.minio  minio/minio server /data --console-address ":9000" --address ":9090"
docker logs -f containerid
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker是一个开放源代码的虚拟化平台,能够以容器的形式打包和分发应用程序。MySQL是一种流行的开源关系型数据库管理系统。使用Docker部署MySQL可以极大简化安装和配置的过程,并且能够实现数据的持久化。 首先,我们需要在Docker上搜索并选择适合的MySQL镜像。可以通过运行`docker search mysql`命令来查找可用的MySQL镜像。选择合适的镜像后,可以通过`docker pull <镜像名称>`来下载镜像,例如`docker pull mysql:latest`。 下载完成后,我们可以运行以下命令来创建一个MySQL容器: ``` docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=your_password -d mysql:latest ``` 这个命令将会创建一个名为mysql的容器,并将MySQL服务的默认端口3306映射到宿主机的3306端口。同样,我们可以设置一个root密码,让MySQL服务有一个基本的访问控制。 这样,MySQL容器就成功运行起来了。我们可以通过`docker ps`命令来查看正在运行的容器。接下来,我们可以使用MySQL客户端连接到该容器。可以通过以下命令登录到MySQL容器内部的MySQL服务: ``` docker exec -it mysql mysql -uroot -p ``` 然后,我们可以在MySQL容器内部使用标准的MySQL命令来管理和操作数据库。 要实现数据的持久化,我们可以将MySQL容器内部的数据目录和宿主机的目录进行挂载。可以使用`-v`参数来指定目录的挂载点。例如: ``` docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=your_password -v /path/to/mysql/data:/var/lib/mysql -d mysql:latest ``` 这将会将MySQL容器内部的`/var/lib/mysql`目录与宿主机上的`/path/to/mysql/data`目录进行挂载,从而实现数据的持久化。 通过以上步骤,我们可以使用Docker部署MySQL,并且实现数据的持久化。这样,我们可以方便地在不同的环境之间快速部署和迁移MySQL数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码匠人

做好事,当好人

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值