Docker简介:Docker 是一个开源的应用容器引擎,基于 Go语言并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker优点:简化程序、节省开支。
Docker架构:
Docker核心概念:
docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker客户端(Client):连接docker主机进行操作;
docker仓库(Registry):用来保存各种打包好的软件镜像;
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
容器和镜像的关系相当于类和对象的关系,将镜像运行起来就是一个容器。
容器 | 对象 |
镜像 | 类 |
安装Docker:
查看centos版本:uname -r
docker要求centos系统内核版本高于3.10,如果不是可以使用yum update更新;
安装docker: yum install docker
启动docker: systemctl start docker
停止docker: systemctl stop docker
查看docker版本: docker -v
设置docker开机启动: systemctl enable docker
对镜像的操作(docker hub: https://hub.docker.com/):
去docker仓库搜索镜像
docker search 软件名称
如:docker search mysql
拉取镜像
docker pull + 名称:tag (标签可选,不加tag默认最新版本latest)
如:docker pull mysql 默认下载latest
docker pull mysql:5.5 下载mysql-5.5版本
查看所有镜像
docker images
删除镜像
docker rmi + 镜像id
对容器操作:
运行容器:docker run --name 容器名称 -d 镜像名称(-d指的是后台运行,镜像名称带上tag)
如:docker run --name myredis -d redis
查看正在运行的容器: docker ps
停止正在运行的指定容器:docker stop 容器id或者容器名称
查看所有的容器,包括退出的容器:docker ps -a
启动容器:docker start 容器id
删除容器:docker rm 容器id
端口映射:将linux的端口映射到容器中的端口
启动镜像时加上-p 8888:8080 将linux的8888端口映射到容器的8080端口
docker run --name 容器名称 -d 镜像名称 -p 8888:8080
查看容器日志
docker logs 容器id
centos防火墙操作:
service firewalld status 查看防火墙状态
service firewalld stop 关闭防火墙
Docker中安装mysql:
1、在docker中搜索mysql镜像
2、docker拉取mysql镜像
3、运行mysql镜像
直接运行:docker run --name mysql -d mysql
发现后台并没有mysql服务并没有启动,查看日志,命令: docker logs mysql
说没有设置数据库密码,因此需要设置一下。
并且当访问数据库时,需要将主机的端口和docker容器的端口进行映射,如:-p 3306:3306
所有将刚才创建失败的容器删除掉:
重新创建mysql容器:
命令:docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123 -d mysql
测试:
在docker中安装mysql成功!