相信不少童鞋都听说过或者看过别人玩docker(大佬可以无视本文),那么docker到底是怎么回事呢,今天我来揭开docker的神秘面纱,看看她的本来面目!
一.什么是docker
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其他的基础应用平台。
docker支持将软件编译成一个镜像,然后在镜像中对各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像把这个镜像运行起来,运行的这个镜像称为容器,容器启动是非常快的。
Docker通常用于如下场景:
- web应用的自动化打包和发布;
- 自动化测试和持续集成、发布;
- 在服务型环境中部署和调整数据库或其他的后台应用;
- 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境
二.为什么要使用docker
优势什么的就不说了,前人总结的很好,这里不再赘述,可以参照下面两篇文章:
三.基础
1.概念
docker主机(host):安装了docker程序的机器(docker直接安装在操作系统之上的)。一个物理或虚拟的机器用于执行Docker 守护进程和容器。
docker客户端(client):连接docker主机进行操作。客户端通过命令行或其他工具使用docker。
docker仓库(Registry):用来保存各种打包好的软件镜像。docker仓库用来保存镜像。
docker镜像(Images):打包好的软件,放在docker仓库中。
docker容器(Container):镜像启动后的实例就是一个docker容器。
2.使用docker步骤
(1).安装docker
(2).去docker仓库找到想要安装软件对应的镜像。
(3).使用docker运行这个镜像,这个镜像就会生成一个docker容器。
(4).对这个docker容器的启动停止就是对这个软件的启动停止。
四.安装docker
1.安装linux
VMware太沉重、VirtualBox-5.1.26-117224-Win.exe,小巧 ,我们这里使用它。
linux我们用的是CentOS-7-x86_64-DVD-1708.iso
virtualBox的下载和安装,virtualBox上安装centos的步骤可以参考这个网址:https://jingyan.baidu.com/article/4dc4084868a1e4c8d946f133.html
当我们在virtualBox上安装好centos时,可能会连不上网,解决方法参考:https://jingyan.baidu.com/article/20b68a888f71b4796cec62ed.html
上面的方法都是笔者亲自试过的,大家可以放心去做。
2.linux上安装docker
(1).检查linux内核版本,命令: uname -r ;版本小于3.1,则升级软件包及内核: yum update
(2).安装docker,命令:yum install docker
(3).输入 “y”,确认下载
这里输入小写“y”无效的话,可以输入大写的“Y”
(4).安装好后,启动docker,命令:systemctl start docker
(5).查看docker版本,命令:docker -v
(6).将docker服务设置为开机启动,命令:enable docker (不是必须的)
(7).停止docker,命令:systemctl stop docker
五.常用操作
1.镜像操作
(1).检索
作用:检索docker仓库里mysql的镜像都有哪些
命令:docker search mysql
(2).拉取
作用:把docker镜像从远程docker仓库拉取到本地(相当于下载软件)
命令:docker pull Image : tag
说明: : tag是可选的,tag表示标签,多为软件的版本,默认是latest
(3).列表
作用:查看所有本地镜像
命令:docker images
(4).删除
作用:删除指定的本地镜像
命令:docker rmi image-id
参考资料:
docker中文社区http://www.docker.org.cn/book/docker
2.容器操作
软件镜像——运行镜像——产生一个docker容器(正在运行的软件)
(1).搜索:
命令:docker search tomcat
(2).拉取:
命令:docker pull tomcat
(3).运行:
命令:docker run --name mytomcat -d tomcat:tag
说明:mytomcat 是给这个将要运行的容器起个名称;tomcat就是拉取的镜像;
:tag 是这个镜像的标签,可以不写,不写的话默认为latest
(4).查看docker中的容器:
命令:docker ps (查看正在运行的容器)
命令:docker ps -a (查看所有的容器)
(5).停止:
命令:docker stop container-name/container-id
说明:docker stop 后面是容器名称或者容器id
(6).启动:
命令:docker start container-name/container-id
说明:docker stop 后面是容器名称或者容器id
(7).删除:
命令:docker rm container-id
说明:容器要在停止状态,container-id是容器id
(8).端口映射:
命令:docker run -d -p 外部端口:容器端口
说明:这个外部端口是指虚拟机端口或者主机端口,容器端口指的是,这在运行的这个docker容器的端口
例如:docker run -d -p 8888:8080 tomcat (这里没有用--name参数给这个容器重启名称)
3.安装mysql示例
(1).拉取镜像
docker pull mysql
(2).启动
错误的运行:
docker run --name mysql01 -d mysql
错误日志:
正确的运行:
命令:docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
说明:-e 参数指定 MYSQL_ROOT_PASSWORD的值
加上端口映射再次运行镜像
命令:docker run --name mysql02 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
几个其他高级的操作:
docker run ‐‐name mysql03 ‐v /conf/mysql:/etc/mysql/conf.d ‐e MYSQL_ROOT_PASSWORD=my‐secret‐pw‐d mysql:tag
-v,把主机的/conf/mysql文件夹挂载到 mysqldocker容器的/etc/mysql/conf.d文件夹里面改mysql的配置文件就只需要把mysql配置文件放在自定义的文件夹下(/conf/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
指定mysql的一些配置参数
例如:docker run -p 3307:3306 --name mysql03 -e MYSQL_ROOT_PASSWORD=123456 -d mysql --character-set-erver=utf8mb4 --collation-server=utf8mb4_unicode_ci
(3).测试
当这个mysql容器运行起来以后,我们可以用navicat连接上试一试。
先查看当前linux的IP,输入: ip addr 命令 ,如下图是其ip地址:
打开Navicat,连接这个mysql,
ip:172.16.7.76;
port:3306 //在运行镜像时,做了端口映射
user:root //mysql的root用户
password:123456 //在运行镜像时设置的密码
如下图:
连接成功后,可以看到如下图,说明我们在docker中运行的mysql成功了
到这里我们docker的基础和简单应用就说完了,哪里不对的地方或是有任何问题都可以给我留言哦。