ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

如何在docker上面安装常用的容器环境

2022-09-15 21:33:30  阅读:324  来源: 互联网

标签:opt 容器 data redis module conf docker 安装


本文主要记录了如何在docker上面安装最长的容器环境,包括redis、mongodb、es以及mysql

安装redis

1. 从docker hub上(阿里云加速器)拉取redis镜像到本地标签为6.0.8

docker pull redis:6.0.8

2. 基础命令操作

2.1 启动容器并访问

# 启动redis容器
docker run -d -p 6379:6379 redis:6.0.8

# 进入redis容器
docker exec -it c14ecf2a6246 /bin/bash

# 使用客户端命令访问容器
redis-cli

2.2 停止容器并删除

# 查看容器ID
docker ps

# 停止容器
docker stop c14ecf2a6246

# 删除容器
docker rm c14ecf2a6246

3. 指定宿主机配置文件和容器卷启动容器

3.1 创建宿主机的redis容器配置文件和容器卷存储文件夹

# 配置文件放在这里
mkdir -p /opt/module/docker/redis/conf

# 数据卷放在这里
mkdir -p /opt/module/docker/redis/datas

3.2 上传默认redis配置文件到/opt/module/docker/redis/conf下面
默认redis配置文件下载地址:下载

3.3 修改redis配置文件

3.4 启动容器

docker run -p 6379:6379 --name redis6 --privileged=true -v /opt/module/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /opt/module/docker/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf
  • Docker挂载主机目录Docker访问出现cannot open directory : Permission denied
  • 解决办法:在挂载目录后多加一个-privileged=true参数即可

安装mongodb

拉取镜像

docker pull mongo:latest

创建宿主机容器卷映射

  • 创建映射配置文件夹
mkdir -p /opt/module/docker/mongodb/conf

在上方文件下面vim mongo.conf输入一下内容

systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true
storage:
  dbPath: /data/db
net:
  port: 27037
  bindIp: 0.0.0.0
#security:
  #authorization: enabled

注意:这里的path和dbPath都是指的容器下面的路径

  • 创建mongodb的数据存储位置
mkdir -p /opt/module/docker/mongodb/data/log

启动容器

  • 无密码创建容器
docker run -itd --name mongo -p 27017:27017  -v /opt/module/docker/mongdb/data:/data/db  -v /opt/module/docker/mongdb/conf/mongo.conf:/data/configdb/mongo.conf -v /opt/module/docker/mongdb/data/log:/data/log mongo
  • 设置密码,注意需要在配置文件打开
docker run -d \
--name mongodb \
-p 27017:27017 \
-v /opt/module/docker/mongdb/data:/data/db \
-v /opt/module/docker/mongdb/conf/mongo.conf:/data/configdb/mongo.conf \
-v /opt/module/docker/mongdb/data/log:/data/log \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=admin \
--privileged=true \
--restart always \
mongo

测试

  • 下载studio 3t连接测试

docker安装elasticSearch

1 拉取ES镜像

docker pull elasticsearch:7.16.1

2 创建要挂载的文件与配置信息

mkdir -p /opt/module/docker/elasticsearch/conf
mkdir -p /opt/module/docker/elasticsearch/data
mkdir -p /opt/module/docker/elasticsearch/plugins

3 启动容器

  • 不配置容器卷启动
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-d elasticsearch:7.16.1
  • 测试结果

  • 配置容器卷启动

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
# 配置启动参数,防止ES占用内存过大,大概1GB
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /opt/module/docker/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /opt/module/docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /opt/module/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.16.1

4 测试

  • 测试结果

docker安装arm版本mysql

1. 拉取镜像

由于这里需要安装的mysql5.7版本,但是机器是arm架构的,docker下面的官方mysql只有8.0以上版本才适配了arm架构。
因此,这里安装其与mysql5.7对应的mariaDB10.2。
mariaDB和mysql版本对比关系参考: https://www.cnblogs.com/yuwentao/p/15598047.html

docker pull mariadb:10.2

2. 简单版

  • 1)使用mysql镜像
docker run -p 3306:3306 --name mariadb --env MARIADB_ROOT_PASSWORD=000000  -d mariadb:10.2
  • 2)进入容器实例

docker exec -it mariadb /bin/bash
  • 3)测试建库建表
mysql -u root -p
# 创建测试数据库
create database testDB;
# 切换数据库
use testDB;
# 创建数据表
create table test(id int, name varchar(20));
# 插入表数据
insert into test value(1,"shuisheng");
# 查询表信息
select * from test;
  • 4)测试工具连接

  • 5)小结问题

    • docker上默认字符集编码存在隐患,导致插入中文异常;
      • 通过show variables like 'character%'查看编码
    • 容器实例和数据绑定,导致容器实例删除,数据也就消失了;

3. 实战版

  • 1)新建my.cnf配置文件
  • /opt/module/docker/mysql下面创建confdatalog三个容器映射文件夹
mkdir -p /opt/module/docker/mysql/conf
mkdir -p /opt/module/docker/mysql/data
mkdir -p /opt/module/docker/mysql/log`
  • conf目录下面创建my.conf配置文件,并将以下内容配置在内
[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
  • 2)使用容器卷方式创建mysql实例
docker run -p 3306:3306 --privileged=true -v /opt/module/docker/mysql/log:/var/log/mysql -v /opt/module/docker/mysql/data:/var/lib/mysql -v /opt/module/docker/mysql/conf:/etc/mysql/conf.d --name mariadb -e MARIADB_ROOT_PASSWORD=000000 -d mariadb:10.2
  • 3)测试编码

docker exec -it mariadb /bin/bash
mysql -u root -p
show variables like 'character%';
  • 4)测试数据
    • 先在连接mysql容器,并建库建表;
    • 然后删除实例,重新连接测试数据是否存在;

标签:opt,容器,data,redis,module,conf,docker,安装
来源: https://www.cnblogs.com/shuds/p/16698006.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有