1.什么是Docker?

​ Docker是一个开源的应用容器引擎,基于Go语言,遵从Apache2.0协议开源。

​ Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像。

​ 运行中的这个镜像称为容器,容器启动是非常快速的。容器是完全使用沙箱机制,相互之间不会有任何干扰,更重要的是容器性能开销极低。

2.Docker核心概念

​ 1)docker镜像(Images):Docker镜像是用于创建Docker容器模板。

​ 2)docker容器(Container):启动后的实例称为一个容器;容器是独立运行的一个或一组的应用。

​ 3)docker客户端(Client):客户端通过命令行或者其他工具使用Docker。

​ 4)docker主机(Host):一个物理或者虚拟的机器用于执行Docker守护进程和容器。

​ 5)docker仓库(Registry):Docker仓库用来保存镜像,可以理解为代码控制中的代码仓库。

3.CentOS7下载安装Docker

​ 1)安装Docker需要CentOS系统高于3.10 —命令:==uname -r==

​ 如果低于此版本需要去升级软件包及内核 —命令:==yum update==

​ 因为Docker依赖于Linux内核

​ 2)下载Docker —命令:==yum install docker==

​ 3)启动Docker —命令:==systemctl start docker==

​ 停止Docker —命令:==systemctl stop docker==

启动完成可以去查看Docker的版本 —命令:==docker -v==

​ 4)将Docker设置为开机启动 —命令:==systemctl enable docker==

4.常用操作

1.镜像操作

​ 1)检索:==docker search 关键字==

列如:docker search redis

也就是搜索==DockerHub==里面的指定的该关键字镜像

1
2
3
4
5
6
7
8
9
10
//默认下载的时候,docker访问的是国外的服务器,速度会特别的慢,引入阿里巴巴的加速,
//在路径:etc/docker/daemon.json加入下面的代码:


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


//详情地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

​ 2)拉取:==docker pull 关键字==

下载镜像关键字后面可以写版本==:版本号==,拉取指定版本,不加是默认拉取最新版本

搜索Docker中所有的本地镜像: —命令:==docker images==

删除Docker中的本地镜像: —命令:==docker rmi 镜像id==

2.容器操作

​ 1)运行:==docker run –name 自定义容器名 -d image-name==

列如:docker run --name mytomcat -d tomcat

端口映射 —命令:==docker run –name mytomcat -d -p 2424:8080 tomcat==

-d:后台运行;image-name:指定镜像模板

-p:将主机的一个端口映射到容器的一个端口 主机端口:容器内部端口

查看运行中的容器 —命令:==docker ps==

停止运行中的容器 —命令:==docker stop NAMES==

查看所有可运行的容器 —命令:==docker ps -a==

启动指定可运行的容器 —命令:==docker start NAMES==

删除指定可运行的容器 —命令:==docker rm NAMES==

查看指定的容器日志 —命令:==docker logs NAMES==

安装mysql需要指定密码:

​ 命令列如:==docker run –name mysql1 -e MYSQL_ROOT_PASSWORD=密码 -d -p 2424:3306 mysql==

-e:添加环境变量

MYSQL_ROOT_PASSWORD:root用户的密码

docker安装默认mysql的时候用Navicat 远程登录会报错误代码:==1251==

​ 1)首先我们创建好Mysql容器后,登录进Mysql

docker exec -it 容器的NAMES /bin/bash

​ 2)登录Mysql

mysql -u root -p

​ 3)你可以先查看一下自己的Mysql版本,应该是8.0之上的

status

​ 4)授权远程连接

GRANT ALL ON *.* TO ``'root'``@``'%';

​ 5)刷新权限(此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则)

flush privileges;

​ 6)更改加密规则

ALTER USER ``'root'``@``'localhost' IDENTIFIED BY ``'password' PASSWORD EXPIRE NEVER;

​ 7)更新root用户密码

ALTER USER ``'root'``@``'%' IDENTIFIED WITH mysql_native_password BY '123456';

​ 8)刷新权限

flush privileges;

5.在Docker中部署tomcat项目

​ 我们先把项目打成war包,然后创建一个文件夹存放你的war包

mkdir Project

​ 然后我们来启动一个tomcat容器

docker run --name mytomcat -d -p 2424:8080 tomcat

​ 查看所有容器一下

docker ps -a

​ 将war包复制到Docker中的webapps文件夹中

docker cp /你存放war包的路径 容器ID:/usr/local/tomcat/webapps

​ ==例如:docker cp /usr/local/Project/demo.war 9dd4d83dc5f3 :/usr/local/tomcat/webapps==

​ 查看一下是否存在于容器的tomcat/webapps文件夹下

docker exec -it 容器ID /bin/bash

​ ==例如:docker exec -it 9dd4d83dc5f3 /bin/bash==

​ 如果存在就可以访问了

http://host:port/项目名

​ ==列如:http://192.168.68.129:2424/demo==

相关文章
评论
分享
  • MyBatis学习

    MyBatis是一款优秀的基于Java的持久性框架 Mybatis曾经是apache的一个开源项目ibatis,2010年迁移到google,并更名为MyBatis。2013年又迁移到Github。 1.下载MyBatis​ G...

    MyBatis学习
  • Nginx学习

    1.什么是Nginx?​ Nginx是一款高性能的HTTP和反向代理轻量级的Web服务器,特点是占有内存少,并发能力强 ​ ·1.正向/反向代理: ​ 正向代理:其实就是类似于VPN,通过代理...

    Nginx学习
  • ZXing生成二维码

    1.什么是二维码?​ (百度百科):二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更...

    ZXing生成二维码
  • Redis学习

    什么是Redis?Redis是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化NoSQL数据库。为什么需要使用Redis?就拿微博说个实例吧:大家都知道使用微博的人可以用亿来进行统计;假如有一天一位明星在微...

    Redis学习
  • 美女壁纸合集

    一、运动系清纯美少女 二、极品性感美女 三、娇俏性感美女 四、短发美少女 五、可爱性感女生

    美女壁纸合集