Docker是一个开源的应用容器引擎;
Docker按照实际应用场景并不是属于开发的范畴,而是属于运维的范畴,我们通常把提升开发和运维效率的技术集合叫做DevOps,这也是时下人们的话题之一,Docker就是其中的核心之一;
Docker不是虚拟机,但是实现了虚拟机的效果,启动速度却比虚拟机快了N倍,能达到毫秒级的启动速度;
类比等同于Windows镜像系统,我们不用再去装常用的软件和驱动;
而Docker可以自己定制自己的"系统";
比如我们通常开发好应用需要部署的时候,需要手动装Mysql,Redis,JDK,Tomcat(当然SpringBoot中Tomcat可以省掉)…
这时候工作就显得很繁琐并且重复;我们就可以使用Docker打包我们的镜像,提供给他人或者自己使用,同时也能使用别人打包好的镜像;
我们就可以使用容器技术来加快我们的部署和运维效率;
并且容器使用了沙箱技术,系统开销极低;
因为很少会有应用部署到windows下的[手动滑稽脸]
安装linux虚拟机(土豪直接买服务器)
vmware太大,不适合我们开发场景,这里推荐oracle公司的virtualbox
下载virtualbox
https://pan.baidu.com/s/1jIBZEpK
密码:05hm
下载后一直下一步安装即可
安装centos7镜像(已配置好的文件)
下载地址(建议用迅雷下载)
http://www.lerx.com/html/g7/2019/01-11/165010750-82.html
下载后导入镜像
[外链图片转存失败(img-PeJaHBi5-1567948189670)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566888079341.png)]
一直下一步就ok,如果不放心可以清空下mac地址(一般不用清空)
连接虚拟机,
账户:root
密码:ilovelerx
连接成功后搭建环境完成!
这里演示使用实际的部署环境(阿里云香港2核)
[外链图片转存失败(img-QEnbEbxt-1567948189671)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1566899519196.png)]
安装Docker
#首先查看内核版本(docker要求必须3.10以上)
uname -r
#更新软件源
yum update
#安装docker
yum install docker
#启动docker
systemctl start docker
#查看docker版本
docker -v
#开机启动docker
systemctl enable docker
Docker常用操作
#docker查询软件
docker search mysql
实际查询地址:dockerhub.com
中国镜像地址:
#docker拉取镜像
docker pull {镜像名}:版本号
#docker 查看所有镜像
docker images
#docker移除镜像
docker rmi {imageId}
操作步骤
搜索镜像>拉取镜像>根据镜像启动容器
Docker容器操作
#启动容器(-d:后台运行)
docker run --name {containerName} -d {imageName:version}
#查询运行中的容器
docker ps
#查询所有的ring器
docker ps -a
#停止容器
docker stop {containerId | containerName}
#开始容器
docker start {containerId | containerName}
#删除容器(容器必须是停止状态)
docker rm {containerId}
#端口映射
在启动时加上-p {外部端口}:{本地端口}
#查看容器日志,在tomcat下查看的就是tomcat的日志
docker logs {containerId}
生产环境一般使用的命令:docker run -d -p 80:8080tomcat(一般不指定名字)
如果外网访问不了,关闭防火墙(仅开发环境使用,生产环境可以在后台开启指定端口)
service firewalld stop
上https://hub.docker.com搜索mysql
右上角有拉取的命令
docker pull mysql
进入主页后获取安装命令
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
然后在此基础上加上我们的端口映射即可使用
$ docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
一些mysql的高级操作
启动时设置编码
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci