1、简介
百度百科介绍:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
- DockerClient客户端
- Docker Daemon守护进程
- Docker Image镜像
- 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**
出现以下错误
解决办法
命令:**vim /etc/resolv.conf**
在该文件中下方加入:nameserver 8.8.8.8
nameserver 8.8.4.4
search localdomain
如图所示:保存重启即可解决
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
e、安装Docker包
命令: **sudo yum install docker-engine**
输入‘y’进行ing…
安装完成,如图所示:
f、启动Docker守护进程
命令:**sudo service docker start**
g、通过测试镜像运行一个容器来验证Docker是否安装正确
命令:**sudo docker run hello-world**
如果看到这样的命令就说明hello-world的镜像安装好了:
h、检查Docker版本
命令:**docker version**
2、副本安装docker
Docker要求运行在Centos 7上,要求系统为64位,系统内核版本3.10以上**uname -an**
查看当前系统版本**yum -y install docker**
下载安装docker**service docker start**
启动docker服务**docker version**
检查docker是否安装成功
当看到下图的信息,就是表示本机docker已经安装成功,很简单
3、如何查找镜像支持的版本
由于docker search命令只能查找出是否有该镜像,不能找到该镜像支持的版本,所以我们需要通过docker hub来搜索支持的版本。
a、官网查看
- 进入docker hub的官网,地址:https://hub.docker.com
b、然后搜索需要的镜像
- 如图搜索MySQL的镜像
c、查看镜像支持的版本
d、进行镜像的下载操作
docker pull mysql:8.0.16
4、安装MySQL镜像
注意 :Docker必须先启动才可以,命令: **service docker start**
a、查询MYSQL镜像是否安装
命令:**docker images**
如果没有,则表示没有安装。
b、查询MySQL镜像
命令:**docker search mysql**
这里可以选择标星最多的
c、拉取mysql镜像
命令: **docker pull mysql**
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
--name 后面的是docker容器名
-p 32xxx:3306 这里需要注意 32xxx是你链接mysql的时候的 Port
-e MYSQL_ROOT_PASSWORD 是设置mysql的root账号密码
-d mysql 是你的镜像标签命令,我这里是版本号
e、查看Docker容器的信息
f、使用Navicat Premium链接MySQL
测试连接,我这里出现连接失败!
注意:在这里如果无法连接可以关闭linux的防火墙
命令:**systemctl stop firewalld**
再次测试连接,这次就OK了
5、Elasticsearch 安装
a、查询Elasticsearch
命令:**docker search elasticsearch**
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**
出现上述错误: 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**
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””大小。
通过**docker ps -a **
查看是否启动
看下图它已经停止运行
重新启动,如上图 **docker start 5b54d1664362**
e、浏览器测试
在浏览器输入“ip+端口(9200)”出现以下信息,表示安装成功:
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"
9、擦边话
a、删除 Docker
命令: **sudo yum -y remove docker-engine**
b、删除 docker 相关目录文件
安装docker 后在 /var/lib/docker 目录下包含 images,containers, volumes和自定义的配置文件,这些文件必须手动删除。
命令:**sudo rm -rf /var/lib/docker**
c、出现问题
[root@su ~]# docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
解决办法:
首先确保docker已经安装好了。
问题原因是因为docker服务没有启动,所以在相应的/var/run/ 路径下找不到docker的进程。
执行命令:**service docker start**
d、MySQL连接出现问题
问题描述:如下所示
解决办法:
使用docker ps -a
命令查看MySQL的CONTAINER ID ,如下:
使用命令:docker exec -it 6a3dbde73bd7 /bin/bash
使用命令: mysql -uroot -proot
进入MySQL管理员用户,如上图所示。
修改账户密码为123456,
命令: ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
之后使用MySQL的可视化工具连接即可。
e、获取某个容器的IP
docker inspect ad918eb28d12(容器ID)