• 03-安装docker及使用docker安装其他软件(手动挂载数据卷)


    中秋明月,豪门有,贫家也有,极慰人心

    Linux安装docker

    可以参考官方的安装文档

    centos安装docker:

    https://docs.docker.com/engine/install/centos/

    # 1. 卸载之前的docker
    sudo yum remove docker \
                    docker-client \
                    docker-client-latest \
                    docker-common \
                    docker-latest \
                    docker-latest-logrotate \
                    docker-logrotate \
                    docker-engine
                     
    # 2.需要的安装包
    yum install -y yum-utils

    # 3.设置镜像的仓库
    # 推荐使用国内的
    yum-config-manager \
      --add-repo \
      https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # 更新yum软件包索引
    yum makecache

    # 4.安装docker相关的 docker-ce 社区版 而ee是企业版
    yum install docker-ce docker-ce-cli containerd.io

    # 5、启动docker
    docker systemctl start docker

    # 6. 使用docker version查看是否按照成功
    docker version

    ubuntu安装docker:

    https://docs.docker.com/engine/install/ubuntu/

    其中又一个地方需要注意,就是将镜像仓库从国外的换成国内的镜像仓库,如阿里云。

    # 移除以前的docker
    sudo apt-get remove docker docker-engine docker.io containerd runc

    # 配置镜像仓库
    sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && sudo apt-get update && sudo apt-get install -y docker-ce

    # 配置镜像加速器
    sudo mkdir -p /etc/docker && sudo tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://epsax6ut.mirror.aliyuncs.com"],
    "log-driver":"json-file",
    "log-opts": {"max-size":"10m", "max-file":"3"}
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker

    docker -v # 查看版本

     

    docker常用

    docker查看下载的镜像

    docker images

    docker启动容器

    1. 基于镜像新建容器并启动
    docker run IMAGE:TAG

    - INAGE:镜像名称
    - TAG:镜像版本号

    注意:一般不使用这种方式来加载镜像容器,最好是手动进行镜像目录与配置文件的挂载。参考下文的docker安装常用软件。

    1. 将处于停止状态的容器重新启动
    docker container start [container ID or NAMES]

    docker容器重新启动

    不管容器是否在运行

    docker restart [container ID or NAMES]

    docker查看容器

    查看正在运行中的容器

    docker ps

    查看所有容器(包括运行中的、已经停止的)

    docker ps -a

    字段说明

    • CONTAINER ID : 容器 ID;

    • IMAGE : 创建容器时使用的镜像;

    • COMMAND : 容器最后运行的命令;

    • CREATED : 容器创建时间;

    • STATUS : 容器状态;

    • PORTS : 端口信息;

    • NAMES : 容器名:和容器 ID 一样,可以标识容器的唯一性,同一台宿主机上不允许有同名容器存在,否则会冲突;

    docker容器交互

    exec(推荐)

    docker exec -it [container ID or NAMES]

    attach

    docker attach [container ID or NAMES]

    两者都是使用exit退出容器内部,区别在于,后者退出会导致容器停止运行。

    docker停止容器

    stop

    docker container stop [container ID or NAMES]

    docker删除容器

    rm

    docker container rm [container ID or NAMES]

    prune 删除所有已经停止的容器

    docker container prune

     

    docker安装常用软件(手动挂载数据卷)

    docker镜像仓库地址:

    https://hub.docker.com/_/mongo?tab=tags&page=1

    可以通过这个查看需要下载的镜像版本

    docker安装MySQL

    安装mysql5.7

    # 拉取镜像
    docker pull mysql:5.7
    
    # 运行容器
    sudo docker run -p 3306:3306 --name mysql \
    -v /home/docker/mysql/log:/var/log/mysql \
    -v /home/docker/mysql/data:/var/lib/mysql \
    -v /home/docker/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=admin-123456 \
    -d mysql:5.7
    # 参数说明 -p 3312:3306 将容器的3306端口映射到主机的3312端口
    # -v 宿主机文件目录:容器内目录  将容器内文件挂载到宿主机上
    # -e MYSQL_ROOT_PASSWORD=root 设置mysql密码为admin-123456
    # -d 后台启动
    # --name 给启动容器起名字
    
    # 使用docker ps 查看启动的容器

    修改mysql配置文件

    # 进入配置文件挂载的目录下
    cd /home/docker/mysql/conf
    
    # 编辑配置文件my.cnf
    vim 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
    
    # 修改配置文件之后,重启容器
    docker restart mysql

    docker安装redis

    安装redis

    # 1、创建配置文件
    mkdir -p /home/docker/redis/conf
    mkdir -p /home/docker/redis/data
    touch /mydata/redis/conf/redis.conf
    
    # 2、下载镜像
    docker pull redis:latest
    
    # 3、启动容器
    # 云服务器一定要修改端口或配置密码,否则会被拉去挖矿
    docker run -p 6379:6379 --name redis \
    -v /home/docker/redis/data:/data  \
    -v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
    -d redis redis-server /etc/redis/redis.conf
    
    # 4、直接进入redis客户端
    docker exec -it redis redis-cli

    修改redis配置文件

    vim /home/docker/redis/conf/redis.conf
    
    # 插入下面内容
    appendonly yes    # 支持持久化
    requirepass xxxxxx # 配置redis密码
    # 注意:后面的注释去掉,否则容器运行不起来
    
    # 保存
    docker restart redis
    
    # 进入redis客户端
    docker exec -it redis redis-cli
    auth xxxxxx

    docker安装monogoDB

    mkdir -p /home/docker/mongo/data
    mkdir -p /home/docker/mongo/conf
    mkdir -p /home/docker/mongo/logs
    
    docker pull mongo:latest
    
    docker run -d --name mongo -p 27017:27017 \
    -v /home/docker/mongo/conf:/etc/mongo \
    -v /home/docker/mongo/data:/data/db \
    -v /home/docker/mongo/logs:/var/log/mongodb mongo --auth 
    
    $ docker exec -it mongo mongo admin
    # 创建一个名为 admin,密码为 123456 的用户。
    >  db.createUser({user:'admin',pwd:'123456',roles:[{role:'userAdminAnyDatabase',db:'admin'},"readWriteAnyDatabase"]})
    # 尝试使用上面创建的用户信息进行连接。
    > db.auth('admin', '123456')

    docker安装elasticsearch与kibana

    ES安装

    1. 下载ES(数据存储与检索,相当于mysql),kibana(可视化检索,相当于navicat)

    docker pull elasticsearch:7.17.6
    docker pull kibana:7.17.6
    版本要统一
    1. 容器配置

    # 将docker里的目录挂载到linux的/mydata目录中
    # 修改/mydata就可以改掉docker里的
    mkdir -p /home/docker/elasticsearch/config
    mkdir -p /home/docker/elasticsearch/data

    # es可以被远程任何机器访问
    echo "http.host: 0.0.0.0" >/home/docker/elasticsearch/config/elasticsearch.yml

    # 递归更改权限,es需要访问
    chmod -R 777 /home/docker/elasticsearch/
    1. 启动容器

    # 9200是用户交互端口 9300是集群心跳端口
    # -e指定是单阶段运行(单机)
    # -e指定占用的内存大小,生产时可以设置32G
    docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
    -e "discovery.type=single-node" \
    -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
    -v /home/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /home/docker/elasticsearch/data:/usr/share/elasticsearch/data \
    -v /home/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    -d elasticsearch:7.17.6


    # 设置开机启动elasticsearch
    docker update elasticsearch --restart=always

    # kibana指定了了ES交互端口9200 # 5600位kibana主页端口
    docker run --name kibana -e ELASTICSEARCH_HOSTS=http://ip:9200 -p 5601:5601 -d kibana:7.17.6


    # 设置开机启动kibana
    docker update kibana --restart=always

    docker使用小技巧:

    在启动docker容器的时候,如果容器运行不起来或者起来马上挂掉,可以查看启动日志

    dockerlogs '容器id/容器name'
    1. 启动测试

    # 查看ES是否正常启动
    # 浏览器访问:http://ip:9200

    {
      "name": "66718a266132",
      "cluster_name": "elasticsearch",
      "cluster_uuid": "xhDnsLynQ3WyRdYmQk5xhQ",
      "version": {
          "number": "7.4.2",
          "build_flavor": "default",
          "build_type": "docker",
          "build_hash": "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
          "build_date": "2019-10-28T20:40:44.881551Z",
          "build_snapshot": false,
          "lucene_version": "8.2.0",
          "minimum_wire_compatibility_version": "6.8.0",
          "minimum_index_compatibility_version": "6.0.0-beta1"
      },
      "tagline": "You Know, for Search"
    }

    # 查看kibana是否正常启动
    # 浏览器访问: http://ip:5601/app/kibana

    ik分词器安装

    所有的语言分词,默认使用的都是"standard analyzer",这些分词器针对中文的分词不友好,因此,需要安装中文的分词器。

    1. 下载

    下载路径: https://github.com/medcl/elasticsearch-analysis-ik/releases

    1. 创建ik文件夹,并将下载好的zip文件包解压,放入到ik文件夹

    注意,这里不创建ik文件夹直接解压在plugins目录下的话,服务起不了,会报错。

    #进入es安装目录下的plugins下,创建ik文件夹
    cd /home/docker/elasticsearch/plugins
    mkdir ik

    #将下载好的zip包放入ik文件夹下,执行解压
    unzip elasticsearch-analysis-ik-7.17.6.zip
    1. 重启服务

    2. 验证

    http://192.168.106.130:9200/_cat/plugins

    f70ffa187733 analysis-ik 7.17.6

    docker安装nginx

    1. 随便启动一个nginx实例,只是为了复制出配置

    docker run -p80:80 --name nginx -d nginx:1.10   
    1. 将容器内的配置文件拷贝到/home/docker/nginx/conf/ 下

    mkdir -p /home/docker/nginx/html
    mkdir -p /home/docker/nginx/logs
    mkdir -p /home/docker/nginx/conf
    docker container cp nginx:/etc/nginx/* /home/docker/nginx/conf/
    #由于拷贝完成后会在config中存在一个nginx文件夹,所以需要将它的内容移动到conf中
    mv /home/docker/nginx/conf/nginx/ /home/docker/nginx/conf/
    rm -rf /home/docker/nginx/conf/nginx
    1. 终止原容器并删除

    docker stop nginx
    docker rm nginx
    1. 创建新的Nginx,执行以下命令

    docker run -p 80:80 --name nginx \
    -v /home/docker/nginx/html:/usr/share/nginx/html \
    -v /home/docker/nginx/logs:/var/log/nginx \
    -v /home/docker/nginx/conf/:/etc/nginx \
    -d nginx:1.10
    1. 创建“/home/docker/nginx/html/index.html”文件,测试是否能够正常访问

    echo '

    hello nginx!

    ' >index.html
    访问:http://nginx所在主机的IP:80/index.html

    设置容器自启动

    docker update [container ID or NAMES] --restart=always
     

    __EOF__

  • 本文作者: 你比从前快乐
  • 本文链接: https://www.cnblogs.com/l12138h/p/16667147.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    linux查询进程号,出现两个进程
    CS110L(Rust)
    首饰饰品经营商城小程序的作用是什么
    git 上传大文件
    磁盘IOPS和raid
    科普:什么是ChatGPT?(文末有彩蛋)
    Selenium自动化测试框架
    elasticsearch定期删除策略 - 日志分析系统ELK搭建
    开源集群管理系统对比分析:Kubernetes 与 Apache Mesos
    # 算法与程序的灵魂
  • 原文地址:https://www.cnblogs.com/l12138h/p/16667147.html