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. 自动做bond的脚本

    #!/bin/bash # 先备份原来的网卡配置文件 find /etc/sysconfig/network-scripts/ -type f -name "ifcfg*"|xar ...

  2. 基于Centos7.4搭建prometheus+grafana+altertManger监控Spring Boot微服务(docker版)

    目的:给我们项目的微服务应用都加上监控告警.在这之前你需要将 Spring Boot Actuator引入 本章主要介绍 如何集成监控告警系统Prometheus 和图形化界面Grafana 如何自定 ...

  3. webpack(2)--webapck自身的配置

    上一记介绍了webpack的安装和基本配置,本记将描述webpack自身的配置 一:指定webpack入口以及出口目录以及输出文件 相信读者在看完上一记后会有一点疑惑:为什么运行webpack要配置s ...

  4. 西门子 S7300 以太网模块连接组态王方法

    北京华科远创科技有限研发的远创智控ETH-YC模块,以太网通讯模块型号有MPI-ETH-YC01和PPI-ETH-YC01,适用于西门子S7-200/S7-300/S7-400.SMART S7-20 ...

  5. Go语言的函数07---闭包练习(ATM存取款)

    package main import "fmt" /* @ATM(闭包练习) ·写一个Atm(函数),返回存款,取款两个内层函数 ·存款,取款两个函数,都以一个金额为参数,返回存 ...

  6. 网络模型mAP计算实现代码

    网络模型mAP计算实现代码 一.mAP精度计算 这里首先介绍几个常见的模型评价术语,现在假设我们的分类目标只有两类,计为正例(positive)和负例(negtive)分别是: 1)True posi ...

  7. 用于ONNX的TensorRT后端

    用于ONNX的TensorRT后端 解析ONNX模型以使用TensorRT执行. 另请参阅TensorRT文档. 有关最近更改的列表,请参见changelog. 支持的TensorRT版本 Maste ...

  8. 嵌入式Linux的OTA更新,基础知识和实现

    嵌入式Linux的OTA更新,第1部分-基础知识和实现 OTA updates for Embedded Linux,  Fundamentals and implementation 更新的需要 一 ...

  9. 深入理解ES8的新特性SharedArrayBuffer

    简介 ES8引入了SharedArrayBuffer和Atomics,通过共享内存来提升workers之间或者worker和主线程之间的消息传递速度. 本文将会详细的讲解SharedArrayBuff ...

  10. springcloud-config配置异常Cannot clone or checkout repository 和 Authentication is required but no CredentialsProvider has been registered解决过程

    Cannot clone or checkout repository, 出现这个异常,通过检查是因为自己本地没有配置 ssh,所以配置了, https://blog.csdn.net/zy_2818 ...