Linux(CentOS)安装Docker

查看当前内核版本

[docker@localhost ~]$ uname -r

确保yum包更新到最新

[docker@localhost ~]$ sudo yum update

卸载旧版本的docker

[docker@localhost ~]$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

安装需要的软件包

# yum-util提供yum-config-manager功能
[docker@localhost ~]$ sudo yum install -y yum-utils

设置yum源

[docker@localhost ~]$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

安装docker

[docker@localhost ~]$ sudo yum install docker-ce docker-ce-cli containerd.io

启动docker

[docker@localhost ~]$ sudo systemctl start docker

设置阿里云镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://hiq0snpp.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

加入开机启动

[docker@localhost ~]$ sudo systemctl enable docker
# 验证是否安装成功
[docker@localhost ~]$ docker version

docker安装MySQL

下载MySQL镜像

# 下载MySQL5.7镜像
[docker@localhost ~]$ docker pull mysql:5.7

创建MySQL实例并启动

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

参数说明

-p 3306:3306	将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/conf:/etc/mysql 将配置文件挂载到主机
-v /mydata/mysql/log:/var/log/mysql 将日志文件挂载到主机
-v /mydata/mysql/data:/var/lib/mysql 将数据文件挂载到主机
-e MYSQL_ROOT_PASSWORD=root 初始化root用户密码
-d mysql:5.7 以后台方式运行

进入MySQL容器

docker exec -it mysql /bin/bash

# 查看mysql位置
root@c34eeaabe727:/# whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql

更改MySQL配置

# 因为上面配置了挂载mysql配置文件,所以在外部配置文件目录更改配置就行	/mydata/mysql/conf
root@c34eeaabe727:/# cd /mydata/mysql/conf
# 修改my.cnf文件
root@c34eeaabe727:/# vi /mydata/mysql/conf/my.cnf

my.cnf配置文件

[client]
default-character-set=utf8 [mysql]
default-character-set=utf8 [mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

重启MySQL服务

[root@localhost conf]# docker restart mysql
# 容器跟随docker启动
[root@localhost conf]# docker update mysql --restart=always

容器跟随docker启动

[root@localhost conf]# docker update mysql --restart=always

docker安装Redis

下载Redis镜像

[docker@localhost ~]$ docker pull redis

创建Redis实例并启动

注意之后文件夹挂载时会将redis.conf默认成文件夹,所以这个文件要先新建出来

mkdir -p /mydata/redis/conf
# 往redis.conf中添加 appendonly yes代表redis持久化
touch /mydata/redis/conf/redis.conf

启动

docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

进入Redis容器

docker exec -it redis redis-cli # 打开redis客户端

docker安装elasticsearch

下载elasticsearch镜像

docker pull elasticsearch:7.4.2

创建elasticsearch实例并启动

注意:-e ES_JAVA_OPTS测试环境下,设置ES的初始内存和最大内存,否则导致过大启动不了ES

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml # 运行elasticsearch
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

docker启动elasticsearch失败,使用

docker logs elasticsearch

命令查看启动日志,发现报错如下:

原因是因为外部挂载的data目录权限不足,更改elasticsearch目录下所有目录的权限

chmod -R 777 /mydata/elasticsearch/

重新启动elasticsearch

docker start elasticsearch
docker logs elasticsearch

浏览器访问elasticsearch9200端口,出现如下信息就好了。

elasticsearch常用命令

查看节点信息

请求路径:http://192.168.1.199:9200/_cat/nodes

查看健康状况

请求路径:http://192.168.1.199:9200/_cat/health

查看主节点信息

请求路径:http://192.168.1.199:9200/_cat/master

查看索引信息

请求方式:get

请求路径:http://192.168.1.199:9200/_cat/indices

保存数据(文档)

第一种方式:(必须带ID)

请求方式:put

请求路径:http://192.168.1.199:9200/customer/external/1

参数:

{
"name": "John Doe"
}

响应:

{
"_index": "customer",# 索引
"_type": "external",# 类型
"_id": "1",# id
"_version": 1,# 版本
"result": "created",# created代表新增,第二次请求的时候变成updated
"_shards": {# 分片信息
"total": 2,
"successful": 1,
"failed": 0
},
# 下面可做乐观锁
"_seq_no": 0,# 并发控制字段,每次更新就会+1
"_primary_term": 1# 同上,主分片重新分配,如重启机会变化
}

索引一条数据到指定索引(customer)下指定类型(external),唯一ID为1,用mysql来说就是插入一条数据到customer库的external表下

注意:当发送多次同一请求的时候会变成更新操作。

第二种方式:(可带可不带ID)

请求方式:post

请求路径:http://192.168.1.199:9200/customer/external/

注意:这个请求可带可不带ID,带ID第一次会新增数据,第二次会变成更新数据。

不带ID代表新增

{
"_index": "customer",
"_type": "external",
"_id": "QTUFC3cB3T_vFaLFpHJW",# 自动生成ID
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}
查询数据(文档)

请求方式:get

请求路径:http://192.168.1.199:9200/customer/external/1

{
"_index": "customer",
"_type": "external",
"_id": "1",
"_version": 1,
"_seq_no": 0,
"_primary_term": 1,
"found": true,
"_source": {
"name": "John Doe"
}
}
更新数据(文档)

请求方式:post

请求路径:http://192.168.1.199:9200/customer/external/1/_update

参数:

{
"doc": {
"name": "John"
}
}

响应:

{
"_index": "customer",
"_type": "external",
"_id": "1",
"_version": 3,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 5,
"_primary_term": 1
}

再次请求的响应:

{
"_index": "customer",
"_type": "external",
"_id": "1",
"_version": 3,
"result": "noop",# es对比参数完全一致时提示未做任何更改,版本号也不会增加
"_shards": {
"total": 0,
"successful": 0,
"failed": 0
},
"_seq_no": 5,
"_primary_term": 1
}

这种更新会对比数据

删除数据(文档)

请求方式:delete

请求路径:http://192.168.1.199:9200/customer/external/1

响应:

{
"_index": "customer",
"_type": "external",
"_id": "1",
"_version": 4,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 6,
"_primary_term": 1
}

注意:不支持删除类型,可删除索引文档

批量添加

支持以下方式做批量数据处理

  • index
  • create
  • delete
  • update

docker安装kibana

下载kibana镜像

docker pull kibana:7.4.2

创建kibana实例并启动

docker run --name kibana \
-e ELASTICSEARCH_HOSTS=http://192.168.1.199:9200 \
-p 5601:5601 \
-d kibana:7.4.2

docker安装运行nginx

# 直接运行Nginx会自动下载
docker run -p 80:80 --name nginx -d nginx:1.10
# 将容器内的配置文件拷贝到当前目录
docker container cp nginx:/etc/nginx .
# 拷贝之后停止Nginx容器并移除
docker stop nginx
docker rm nginx
# 将/mydata/nginx更改为/mydata/conf
mv nginx conf
# 重新创建nginx目录并将conf移动到nginx目录下
mkdir nginx
mv conf nginx/
# 创建新的nginx
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10

Linux(CentOS)下安装docker的更多相关文章

  1. linux centos下安装docker

    1.在vm中装好好centos后,更新内核 运行docker需要内核版本为3.8或者更高的版本,内核必须支持一种合适的存储驱动(Drivice Mapper.AUFS.vfs.btrfs.ZFS),默 ...

  2. docker学习之路-centos下安装docker

    前言 我要在云服务器上做一个asp.net core的webapi应用,使用docker来部署应用,中间用到的任何组件包括nginx和sqlserver 2017都是用docker来装载运行,所以,这 ...

  3. Centos下安装Docker,并配置国内docker源

    Centos下安装Docker 替换为国内的yum源(可选): mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.re ...

  4. Linux(CentOs)下安装Phantomjs + Casperjs

    Linux(CentOs)下安装Phantomjs + Casperjs 是参照cnMiss's Blog http://ju.outofmemory.cn/entry/70691的博客进行安装的 1 ...

  5. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  6. Linux CentOS下安装Tomcat9

    本文讲解在Linux CentOS下安装Tomcat9,以及Web项目的部署发布. 环境:阿里云ECS 云服务器Linux CentOS 使用XShell客户端连接服务器,进行操作实践. 1.下载To ...

  7. Linux 64位 CentOS下安装 Docker 容器,启动、停止

    一.Docker简介 Docker 提供了一个可以运行你的应用程序的封套(envelope),或者说容器,是轻量级的“容器引擎+映像仓库”,在LXC(linux轻量级容器)的基础上构建,可以运行任何应 ...

  8. 在RedHat/CentOS下安装Docker(不升级内核)

    由于内核版本问题,最初仅Ubuntu可以较好的支持Docker.不过,由于RedHat系列OS(REHL.CentOS)是目前主流的Linux服务器操作系统,所以令RedHat系列OS支持Docker ...

  9. CentOS下安装Docker CE教程

    一.安装前准备 1.硬件要求 CentOS 7(64-bit),内核版本不能低于3.10: CentOS 6.5(64-bit或更新的版本),内核版本为 2.6.32-431 或者更高版本,一般不建议 ...

随机推荐

  1. linux安装命令行 图形查看 CPU温度 传感器-20191218

    方法1:命令行sensors # sensorsi350bb-pci-0700Adapter: PCI adapterloc1: +46.0°C (high = +120.0°C, crit = +1 ...

  2. CSS 四种引入样式表优缺点分析

    CSS 四种引入样式表 CSS 有四种方式引入样式表,如下: 外部样式表 内部样式表 行内样式表 导入样式表 外部样式表优缺点 优点 实现了结构与表现的代码完全分离 方便复用及维护 因为分离到各自独立 ...

  3. 1.4linux文件和目录常用命令

    文件和目录常用命令 目标 查看目录内容 ls 切换目录 cd 创建和删除操作 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 ...

  4. 存储单位 KB MB bit

  5. 六、.net core (.NET 6)程序部署到Docker上

    使用Docker部署应用程序 首先确保已经安装Docker 桌面软件,如下图: 然后,把需要部署到Docker上面的项目,咱们先添加Docker的支持,启动项目右键 -> 添加 -> Do ...

  6. 汽车HUD(Head-up Display)的技术难点

    汽车HUD(Head-up Display)的技术难点 首先解析一下HUD是什么原理吧.其实就是把车的前挡风玻璃当成反射镜,在驾驶员人眼前投射一个仪表盘的虚像.图像本身来自下方的电子发光屏,发出仪表盘 ...

  7. NVIDIA Tensor Cores解析

    NVIDIA Tensor Cores解析 高性能计算机和人工智能前所未有的加速 Tensor Cores支持混合精度计算,动态调整计算以加快吞吐量,同时保持精度.最新一代将这些加速功能扩展到各种工作 ...

  8. cuGraph-GPU图形分析

    cuGraph-GPU图形分析 所述RAPIDS cuGraph库是GPU的集合加速图形算法,在GPU DataFrames中发现过程数据.cuGraph的愿景是使图分析无处不在,以至于用户只是根据分 ...

  9. FFmpeg扩展开发

    FFmpeg扩展开发 对FFmpeg RTMP/FLV部分做了扩展,用于支持H.265. 针对<video_file_format_spec_v10_1> VIDEODATA部分扩展如下: ...

  10. 深入理解java虚拟机笔记Chapter7

    虚拟机类的加载机制 概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类的加载机制. 类加载的时机 J ...