1、简介

百度百科介绍:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器

    2、步骤

    a、确定当前用户是否拥有root权限

    如果当前用户不具有root权限,需要在下面的命令前加上sudo,进行提权。

    b、检查系统当中是否安装过docker或者系统是否自带docker

    如果没有显示出任何结果说明,没有安装过docker
    命令:**yum list installed | grep docker**
    如果安装过docker,那么运行下面的命令进行卸载
    命令: **yum remove docker-common.x86_64**

    c、更新yum命令 到最新的

    命令:**sudo yum update**
    出现以下错误
    image.png
    解决办法
    命令:**vim /etc/resolv.conf**
    在该文件中下方加入:
    1. nameserver 8.8.8.8
    2. nameserver 8.8.4.4
    3. search localdomain

如图所示:保存重启即可解决
image.png

更新成功,如下图所示:
image.png
image.png
image.png

d、执行以下脚本

命令: **sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'**

[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

image.png

e、安装Docker包

命令: **sudo yum install docker-engine**
image.png

输入‘y’进行ing…
image.png

安装完成,如图所示:
image.png

f、启动Docker守护进程

命令:**sudo service docker start**
image.png

g、通过测试镜像运行一个容器来验证Docker是否安装正确

命令:**sudo docker run hello-world**
如果看到这样的命令就说明hello-world的镜像安装好了:
image.png

h、检查Docker版本

命令:**docker version**
image.png

2、副本安装docker

Docker要求运行在Centos 7上,要求系统为64位,系统内核版本3.10以上
**uname -an** 查看当前系统版本
**yum -y install docker** 下载安装docker
**service docker start** 启动docker服务
**docker version** 检查docker是否安装成功
当看到下图的信息,就是表示本机docker已经安装成功,很简单
image.png

3、如何查找镜像支持的版本

由于docker search命令只能查找出是否有该镜像,不能找到该镜像支持的版本,所以我们需要通过docker hub来搜索支持的版本。

a、官网查看

b、然后搜索需要的镜像

  • 如图搜索MySQL的镜像

image.png

c、查看镜像支持的版本

image.png

d、进行镜像的下载操作

docker pull mysql:8.0.16

4、安装MySQL镜像

注意Docker必须先启动才可以,命令: **service docker start**
image.png

a、查询MYSQL镜像是否安装

命令:**docker images**如果没有,则表示没有安装。
image.png

b、查询MySQL镜像

命令:**docker search mysql**这里可以选择标星最多的
image.png

c、拉取mysql镜像

命令: **docker pull mysql**
image.png

d、启动mysql实例

命令:**docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:latest**

还有一种:docker run --name first-mysql -p 3306:3306 ``-e`` MYSQL\_ROOT\_PASSWORD=123456 -d mysql
image.png

--name 后面的是docker容器名

-p 32xxx:3306 这里需要注意 32xxx是你链接mysql的时候的 Port 

-e MYSQL_ROOT_PASSWORD 是设置mysql的root账号密码

-d mysql 是你的镜像标签命令,我这里是版本号

image.png
当出现下方遗传字母加数字的组合时,就表明安装成功了。

e、查看Docker容器的信息

命令:**docker ps**
image.png

f、使用Navicat Premium链接MySQL

image.png

测试连接,我这里出现连接失败!
image.png

注意在这里如果无法连接可以关闭linux的防火墙
命令:**systemctl stop firewalld**
image.png
再次测试连接,这次就OK了
Docker安装教程 - 图26

5、Elasticsearch 安装

a、查询Elasticsearch

命令:**docker search elasticsearch**
image.png

b、安装Elasticsearch

命令:**docker pull elasticsearch**
网速卡的一批,使用镜像加速,解决办法

  • 编辑文件/etc/docker/daemon.json,没有就新建。加入以下项目

    {
    "registry-mirrors": ["https://zc517qo8.mirror.aliyuncs.com"]
    }
    

    本身daemon.json文件已经有项目,就额外增加registry-mirrors项

  • 重启docker daemon

命令:**systemctl restart docker**
image.png
出现上述错误: manifest for elasticsearch:latest not found
解决办法:指定elasticsearch版本号,注意哈,目前springboot内部使用的2.1.5版本的,所以这里最好使用elasticsearch2..版本的,**docker pull elasticsearch:2.4.6**或者下面的高版本的(如果你的机器支持的话)
命令:**docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2**
经过漫长的等待安装成功,如下图:

c、查看elastics镜像

命令:**docker images**
image.png

d、启动elasticsearch

命令:

 docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 96dd1575de0f

参数解释:

-e ES_JAVA_OPTS="-Xms256m -Xmx256m" 指定elastic启动时占用内存的大小
-d 表示在后台运行
-p 9200:9200 -p 9300:9300 暴露端口,虚拟机端口:Elastic暴露端口
--name ES01 设置名字,
96dd1575de0f 表示启动ID为96dd1575de0f的那个服务

通过镜像,启动一个容器,并将9200和9300端口映射到本机(ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口
注意由于Elastic是由于JAVA开发的,一般默然大小是2G,虚拟机大小不够,所以需要指定下大小,__我这里设置“- e ES_JAVA_OPTS =”-Xms256m -Xmx256m””大小。
image.png
通过**docker ps -a **查看是否启动
看下图它已经停止运行
image.png
重新启动,如上图 **docker start 5b54d1664362**
image.png

e、浏览器测试

在浏览器输入“ip+端口(9200)”出现以下信息,表示安装成功:
image.png

6、删除镜像

a、指定名称删除镜像

docker rmi java:8

b、指定名称删除镜像(强制)

docker rmi -f java:8

c、强制删除所有镜像

docker rmi -f $(docker images)

7、部署tomcat

这个参考:https://blog.csdn.net/baidu_38432732/article/details/81081819

部署war项目

参考:https://blog.csdn.net/javahighness/article/details/82859596

8、安装Redis

a、拉取Redis

docker pull redis

b、查看是否安装成功

docker image

c、启动镜像

docker run -p 6379:6379 -d redis:latest redis-server

docker run -d --name peachredis -p 6379:6379 redis:4.0.14 --requirepass "peach0815"

ref:https://www.cnblogs.com/zhzhlong/p/9465670.html

9、擦边话

a、删除 Docker

命令: **sudo yum -y remove docker-engine**

b、删除 docker 相关目录文件

安装docker 后在 /var/lib/docker 目录下包含 images,containers, volumes和自定义的配置文件,这些文件必须手动删除。
命令:**sudo rm -rf /var/lib/docker**

ref:https://www.cnblogs.com/zqifa/p/linux-docker-2.html

c、出现问题

[root@su ~]# docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

image.png
解决办法:
首先确保docker已经安装好了。
问题原因是因为docker服务没有启动,所以在相应的/var/run/ 路径下找不到docker的进程。
执行命令:**service docker start**
image.png

d、MySQL连接出现问题

问题描述:如下所示
image.png

解决办法:
使用docker ps -a命令查看MySQL的CONTAINER ID ,如下:
image.png

使用命令:docker exec -it 6a3dbde73bd7 /bin/bash
image.png

使用命令: mysql -uroot -proot 进入MySQL管理员用户,如上图所示。

修改账户密码为123456,
命令: ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
image.png

之后使用MySQL的可视化工具连接即可。

e、获取某个容器的IP

docker inspect ad918eb28d12(容器ID)

参考

docker安装教程