1.Docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
- Docker支持将软件编译成一个镜像。镜像中软件的各种配置已经做好,只要把镜像发布出去,使用者拿到镜像就可以直接使用。运行中的镜像我们称其为容器,容器的启动非常之快。
- 现在各大云平台也都支持docker技术。阿里云、百度云、各种云平台。
- 使用Docker以后,我们在使用一些redis、elasticSearch等软件时,变得更简单了。降低了我们安装和配置软件的要求。
2.Docker核心概念
2.1.Docker中的核心概念
- docker镜像(Images):软件打包好的镜像,docker镜像是用于创建docker容器的模板,放在docker仓库中。
- docker容器(Container):镜像启动后的实例称为一个容器,容器是独立运行的一个或一组应用。
- docker客户端(Client):客户端通过命令行或者其他工具,连接docker主机进行操作。主要是和Docker的守护进程进行通讯。
- docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上)。
- docker仓库(Registry):用来保存各种打包好的软件镜像。
Hub提供了大量的镜像集合供 使用。
https://hub.docker.com
2.2.Docker的基本使用步骤
1.操作系统中安装docker程序。
2.去docker仓库找到对应放到docker镜像。
3.使用docker命令运行docker镜像,生成该镜像对应的容器,就是docker镜像对应的运行软件。
4.对容器的启动和停止,就是对软件的启动和停止。
3.安装Docker
3.1. Docker安装系统介绍
Docker可以安装到操作系统之上,所以可以安装到windows/mac/linux等系统中。
我们这里以linux为例。其他系统的安装可以查看:
https://www.runoob.com/docker/windows-docker-install.html
3.2. Docker安装前准备
3.2.1.安装linux操作系统
1.安装VMware虚拟机
2.VMware中打开CentOS7纯净版文件夹下:CentOS7纯净版.vmx
3.设置虚拟机网络
- 通过命令vim /etc/sysconfig/network-scripts/ifcfg-ens33进行设置。
自定义的子网掩码、网关要和宿主机一致。
在宿主机使用ipconfig来查看
- 重启网络服务
service network restart - ip addr命令查看ip
4.使用客户端连接linux服务器
3.2.2.安装docker在linux操作系统上
1.检查linux内核版本,必须是3.10以上
[root@localhost ~]# uname -r
3.10.0-957.el7.x86_64
如果版本太低,使用yum update命令,进行内核版本升级(选做)
2.安装docker
[root@localhost ~]# yum install docker -y
3.启动docker
[root@localhost ~]# systemctl start docker
4.获取docker版本
[root@localhost ~]# docker -v
Docker version 1.13.1, build cccb291/1.13.1
5.设置为开机启动docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
6.停止docker
[root@localhost ~]# systemctl stop docker
4.Docker常用操作
4.1.镜像操作
注:我们需要配置国内镜像加速器。
vi /etc/docker/daemon.json 来配置 Daemon。
配置内容如下:
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
配置好后,重启docker
service docker restart
- 检索
[root@localhost ~]# docker search mysql
- 拉取镜像
[root@localhost ~]# docker pull mysql:8.0
- 查询本地镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql 8.0 9228ee8bac7a 8 days ago 547 MB
- 删除本地镜像
[root@localhost ~]# docker rmi d404d78aa797
4.2.容器操作
软件镜像(安装程序的文件)----运行镜像产生一个容器(安装程序)----启动容器(打开程序)
更多操作:
https://docs.docker.com/engine/reference/commandline/image_tag/
1.拉取tomcat:8.5.38
[root@localhost ~]# docker pull tomcat:8.5.38
2.运行镜像
[root@localhost ~]# docker run --name mytomcat -d -p 8888:8080 tomcat:8.5.38
3.查看容器
[root@localhost ~]# docker ps
4.启动容器
[root@localhost ~]# docker start 5cf4df638951
5cf4df638951
5.停止容器
[root@localhost ~]# docker stop 5cf4df638951
5cf4df638951
6.删除容器
[root@localhost ~]# docker rm 5cf4df638951
5cf4df638951
7.容器日志
[root@localhost ~]# docker logs 114449d6dd99
5.Docker安装mysql:8.0
1.镜像检索
[root@localhost ~]# docker search mysql
2.拉取镜像
[root@localhost ~]# docker pull mysql:8.0
3.镜像列表
[root@localhost ~]# docker images
4.运行镜像(根据docker hub官网操作)
- Mysql启动时,需要指定密码,通过-e MYSQL_ROOT_PASSWORD
- Mysql启动时,配置端口映射,通过 -p
[root@localhost ~]# docker run --name mysql8.0 -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
93ed851e9012d90e216e0f7a533b1c3e5ec2a18e18b63a1a8ee8b85650892109
5.两个高级操作
- 把主机的/conf/mysql文件夹挂载到 mysqldocker容器的/etc/mysql/conf.d文件夹里面
改mysql的配置文件就只需要把mysql配置文件放在自定义的文件夹下(/conf/mysql)
docker run ‐‐name mysql03 ‐v /conf/mysql:/etc/mysql/conf.d ‐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
6.Docker连接mysql
[root@localhost ~]# docker exec -it mysql8.0 bash
root@93ed851e9012:/# mysql -uroot -p123456
7.使用navicate连接,解决报错1251问题
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
总结:我们通过Docker下载的镜像相当于我们下载的软件安装包,运行镜像文件就是我们安装程序的过程,开启容器才是我们真正的打开了软件。