通俗易懂了解什么是docker以及docker的各种安装环境

文章目录

  • 一、docker是什么?
  • 二、安装docker(linxu安装)
    • 1.清除系统残余项(如果你的服务器之前没有装过Docker,可以直接跳过)
    • 2.安装下载Docker依赖的工具
    • 3、设置镜像仓库地址
    • 4、更新yum缓存(为了保证能更新和下载需要的服务:如docker)
    • 5、安装Docker(Docker版本分为CE(社区免费版)和EE(企业版,安全CE)
    • 6、启动docker
    • 7、查看docker是否启动成功
    • 8、docker常用命令
  • 三、docker常用命令
  • 四、安装docker-compose命令脚本
  • 五、docker安装mysql
  • 六、docker 安装 Redis
  • 七、docker 安装elasticsearch
  • 八、docker安装Kibana
  • 九、docker安装RabbitMQ

一、docker是什么?

在这里插入图片描述
1.Docker的三个基本概念:

Image(镜像)
Container(容器)
Repository(仓库)

Docker的思想来自于集装箱,集装箱解决了什么问题?
在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱.

还不懂得话,在这么理解,docker你理解为快递车.
那么快递车是不是有一个个包裹,包裹可以理解为一个镜像,镜像可以理解为一个Java类,而容器可以理解为Java类的实例。
类只有一个,但可以new出千千万万个实例对象。所以,镜像只是一个可以生成容器的东西,而容器才能让程序运行起来。

仓库的话,比如说,都应该用过git吧,完全可以理解为git,上传拉取操作

那么docker有什么好处呢
最简单的一个例子,比如说,你在刚开始的一台服务器部署项目,那么部署项目一定要配置mysql等环境是吧
那么现在你要吧这个项目迁移到另一台服务器上,又要重写在另一台服务器上重写配置mysql等环境.可能会出现版本错乱等错误,很麻烦
那么现在第一次部署项目的时候,把项目等环境直接放进docker里面,下次你要迁移项目到另一台服务器上,自己把docker镜像上传到docker仓库上,然后再另一台服务器拉取就直接O了,这只是好处之一

二、安装docker(linxu安装)

1.清除系统残余项(如果你的服务器之前没有装过Docker,可以直接跳过)

直接复制

      sudo yum remove docker 
          docker-client 
          docker-client-latest 
          docker-common 
          docker-latest 
          docker-latest-logrotate 
          docker-logrotate 
          docker-selinux 
          docker-engine-selinux 
          docker-engine

2.安装下载Docker依赖的工具

输入命令:

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

3、设置镜像仓库地址

docker默认的官方仓库地址

yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo ##此地址为官方的仓库地址,在国内建议不要用

阿里云的镜像仓库地址

yum-config-manager --add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

还有很多其他的仓库地址,如:网友云、有道等

4、更新yum缓存(为了保证能更新和下载需要的服务:如docker)

命令:

sudo yum makecache fast

5、安装Docker(Docker版本分为CE(社区免费版)和EE(企业版,安全CE)

命令:

sudo yum -y install docker-ce

6、启动docker

输入命令:

sudo systemctl start docker

7、查看docker是否启动成功

systemctl status docker

代表启动成功


补充一下
如果想设置开机自启可以(个人需求自选)
输入命令:

sudo systemctl enable docker

8、docker常用命令

启动docker

systemctl start docker

关闭docker

systemctl stop docker

重启docker

systemctl restart docker

docker设置随服务启动而自启动

systemctl enable docker

查看docker 运行状态 ------如果是在运行中 输入命令后 会看到绿色的active

systemctl status docker

查看docker 版本号信息

docker version

查看docker 详细信息 --------此命令可以查看到docker 中容器运行个数 以及镜像个数等等

docker info

查看运行中的容器

docker ps

查看全部容器

docker ps -a

查看镜像

docker images

所有镜像和容器都删除的命令

docker system prune -a

删除容器命令

docker rm 容器id

删除镜像

docker rmi 镜像id

三、docker常用命令

启动docker

systemctl start docker

关闭docker

systemctl stop docker

重启docker

systemctl restart docker

docker设置随服务启动而自启动

systemctl enable docker

查看docker 运行状态------如果是在运行中 输入命令后 会看到绿色的active

systemctl status docker

查看docker 版本号信息

docker version

docker info

查看自己服务器中docker 镜像列表

docker images
docker images -a 查看全部

修改镜像名称

docker tag 镜像ID 新镜像名称:版本

删除一个或者多个镜像:

docker rmi 镜像名称或ID

启动容器

docker start 容器ID

停止容器

docker stop 容器ID

重启容器

docker restart 容器ID

杀死某个容器

docker kill 容器ID

删除容器,容器名字或者容器ID

docker rm Name/ID
docker rm -f Name/ID 强制删除某个容器

四、安装docker-compose命令脚本

1、Compose介绍
Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。

Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

2、从github上下载docker-compose二进
制文件安装

下载最新版的docker-compose文件

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

若是github访问太慢,可以用daocloud下载

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

3、添加可执行权限

sudo chmod +x /usr/local/bin/docker-compose

4、创建软连(可跳过)

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

5、配置环境变量

vi /etc/profile

6、查看版本

docker-compose --version

安装成功
在这里插入图片描述

五、docker安装mysql

1、下载镜像
在docker hub中搜索mysql,就可以找到该软件页面,上面有下载命令,直接复制粘贴即可
下载命令(我这边下载的是5.7版本):

docker pull mysql:5.7

查看镜像命令(可以查看以下载的镜像):

docker images

2、根据docker hub页面示例,来配置并启动容器
创建本地数据库目录、配置文件以及日志目录(方便进行容器数据卷挂载)
注:因为mysql容器一旦销毁,数据库也就随之销毁,为了解决这个问题,docker官方提出了容器数据卷技术,就是在宿主机上新建一些目录与容器内的目录映射,当容器销毁时,宿主机上的目录文件不会消失,依然存在.
新建目录命令:

建立宿主机数据库目录
mkdir /mydata/mysql/data
建立宿主机数据库配置文件
mkdir /mydata/mysql/conf
建立宿主机数据库日志目录
mkdir /mydata/mysql/log

注:目录可根据你自己修改,但是后面启动docker的时候目录也要改成你修改的

3. 启动容器
启动mysql容器命令

docker run --name mysql -p 3306:3306 -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql/conf.d -v /mydata/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -d a70d36bc331a

4.参数解释

-p 3306:3306
端口映射,将宿主机3306端口与容器3306端口做映射,这样就可以通过宿主机IP+端口访问容器的3306端口了

格式:-p 宿主机端口:容器端口

–name mysql
指定容器名字为mysql,也可以不指定,不指定没有容器名字

-v /root/mysql/datadir:/var/lib/mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/var/log/mysql
数据容器卷挂载
-v /root/mysql/datadir:/var/lib/mysql:对宿主机数据库目录与容器数据库目录进行映射挂载
-v /root/mysql/conf:/etc/mysql/conf.d:对宿主机数据库配置文件与容器数据库配置文件进行映射挂载
-v /root/mysql/logs:/var/log/mysql:对宿主机数据库日志与容器数据库日志进行映射挂载

-e MYSQL_ROOT_PASSWORD=123456
配置mysql的root账号的密码为123456(可以根据需要自行修改密码)

-d:后台执行
a70d36bc331a :镜像id,容器第一次启动要根据镜像来启动,也可以是镜像的名字。可以通过明林docker iamges查看镜像id

5.开启远程访问权限
进入mysql容器命令

docker exec -it mysql-test bash

进入之后登陆

mysql -uroot -p
输入密码我设置的是123456

开启远程访问权限

命令:

use mysql;

命令:

select host,user from user;

命令:

ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY
‘123456’;

命令:

flush privileges;

6、测试是否成功
打开一个mysql客户端如navicat进行连接测试,测试成功
在这里插入图片描述

7、注意
如果远程连接不上的话
1.如果你是云服务器,在安全组中把3306端口开放了
2.如果你是虚拟机,把防火墙关了,或者让防火墙开放3306端口

六、docker 安装 Redis

1.下载Redis镜像

命令

描述

docker pull redis

下载最新版Redis镜像 (其实此命令就等同于 : docker pull

docker pull redis:xxx

下载指定版本的Redis镜像 (xxx指具体版本号)

在这里插入图片描述

我这里下载的是最新版本

docker pull redis:latest

2、创建Redis配置文件

启动前需要先创建Redis外部挂载的配置文件 ( /mydata/redis/conf/redis.conf )
之所以要先创建 , 是因为Redis本身容器只存在 /etc/redis 目录 , 本身就不创建 redis.conf 文件
当服务器和容器都不存在 redis.conf 文件时, 执行启动命令的时候 docker 会将 redis.conf 作为目录创建 , 这并不是我们想要的结果

创建目录 mkdir -p /mydata/redis/conf
创建文件 touch /mydata/redis/conf/redis.conf

4、创建Redis容器并启动

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
–appendonly yes

5、查看Redis是否运行

docker ps

在这里插入图片描述

6、进入Redis容器
通过 Docker 命令进入 Redis 容器内部,下面两个命令都可以

docker exec -it redis /bin/bash
docker exec -it redis bash

进入 Redis 控制台

redis-cli

添加一个变量为 key 为 name , value 为 bella 的内容

set name bella

查看 key 为 name 的 value 值

get name

7、退出容器

exit

8、Redis 配置文件修改

vi /mydata/redis/conf/redis.conf

appendonly yes
protected-mode no
bind 0.0.0.0
requirepass 123456

在这里插入图片描述

七、docker 安装elasticsearch

1、下载镜像

docker pull elasticsearch:7.4.2

2、创建挂载目录

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data

3、写入文件,可被远程任何机器访问

echo “http.host: 0.0.0.0” > /mydata/elasticsearch/config/elasticsearch.yml

4、运行,暴漏两个端口 9200 访问端口 9300 节点通信端口 单节点启动

docker run --name elasticsearch -p 9200:9200 -p 9300:9300
–privileged=true

-e ``“discovery.type=single-node”

-e ES_JAVA_OPTS=``“-Xms64m -Xms128m”

-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

5、需求给挂载文件夹授予权限

chmod -R 777 /mydata/elasticsearch

6、设置开启自启动

docker update Id号 --restart=always

7、如此就可以访问了,但是虚拟机需要设置网络端口 阿里云服务器需要设置 安全组 开发9200端口

访问: 虚拟机ip地址加上 9200
http://192.168.56.1:9200/

8、访问效果
通俗易懂了解什么是docker以及docker的各种安装环境_第1张图片

八、docker安装Kibana

1、下载镜像

docker pull kibana:7.4.2

2、容器运行
192.168.56.1 :是自己虚拟机地址

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

3、设置开启自启动

docker update Id号 --restart=always

4、访问 192.168.56.1:5601

需要等一会才能访问成功
通俗易懂了解什么是docker以及docker的各种安装环境_第2张图片
5、几个cat命令

GET /_cat/nodes: 查看所有节点
GET /_cat/health: 查看es健康状况
GET /_cat/master: 查看主节点
GET /_cat/indices: 查看所有索引

6、分词器 Ik 支持中文分词

https://gitee.com/jowell-jiawei/elasticsearch-analysis-ik-7.4.2

下载zip直接解压 放到挂载的plugins文件夹下面

最后重启Electicsearch

测试如下:
通俗易懂了解什么是docker以及docker的各种安装环境_第3张图片

九、docker安装RabbitMQ

1、下载并且启动

5672 :这是rabbitMQ的端口号
15672 :这是那个RabbitMQ的web页面的端口号
4369以及25672:这是集群需要做的端口号

docker run -d --name rabbitmq -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15672:15672 rabbitmq:management

2、开机自启动

docker update rabbitmq --restart=always

3、访问rabbitmq

192.168.43.128:15672
默认账号:guest
默认密码: guest

通俗易懂了解什么是docker以及docker的各种安装环境_第4张图片

在这里插入图片描述

你可能感兴趣的:(java,docker,java,容器,mybatis,服务器)