1.docker简介
- Docker是一个开源的应用容器引擎;是一个轻量级容器技术;
- Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;
- 运行中的这个镜像称为容器,容器启动是非常快速的。
2、核心概念
- docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
- docker客户端(Client):连接docker主机进行操作;
- docker仓库(Registry):用来保存各种打包好的软件镜像;
- docker镜像(Images):软件打包好的镜像;放在docker仓库中;
- docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
使用Docker的步骤:
1)、安装Docker
2)、去Docker仓库找到这个软件对应的镜像;
3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器;
4)、对容器的启动停止就是对软件的启动停止;
3.安装docker
- 安装Linux虚拟机
- 在linux虚拟机上安装docker
步骤
1、检查内核版本,必须是3.10及以上,如果不是可升级内核,使用yum update
uname ‐r
2、安装docker
yum install docker
3、输入y确认安装
如果看到版本号说明启动正常
4、启动docker
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker ‐v
Docker version 1.12.6, build 3e8e77d/1.12.6
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
systemctl stop docker
4.Docker常用命令&操作
- 镜像常用命令
获取镜像
https://hub.docker.com/
因为没有启动docker
到仓库获取mysql镜像
name:镜像名称斜杠后面就可以
stars:下载量
official:ok 代表官方(没有自动配置,可以自定义配置)
automa:ok 自动构建(只要运行配置已配置好)所有配置自动化
查看docker中的镜像
repository :镜像下载路径
tag:镜像标签
image id:镜像id
下载其他版本镜像
删除镜像
2. 容器常用命令
软件镜像(QQ安装程序)----运行镜像----产生一个容器(正在运行的软件,运行的QQ);
步骤
1、搜索镜像
[root@localhost ~]# docker search tomcat
2、拉取镜像
[root@localhost ~]# docker pull tomcat
3、根据镜像启动容器
docker run ‐‐name mytomcat ‐d tomcat:latest
–name :表示自己起的名字
-d:表示后台运行
4、docker ps
查看运行中的容器
5、停止运行中的容器
docker stop容器的id
6、查看所有的容器
docker ps‐a
7、启动容器
docker start容器id
8、删除一个容器
docker rm容器id
9、启动一个做了端口映射的tomcat
[root@localhost ~]# docker run ‐d ‐p 8888:8080 tomcat
‐d:后台运行
‐p: 将主机的端口映射到容器的一个端口主机端口:容器内部的端口
10、为了演示简单关闭了linux的防火墙
service firewalld status ;查看防火墙状态
service firewalld stop:关闭防火墙
11、查看容器的日志
docker logs container‐name/container‐id
更多命令参看
https://docs.docker.com/engine/reference/commandline/docker/可以参考每一个镜像的文档
容器启动成功
启动,查看,停止,查看,查看所有,删除
防火墙状态
未激活,开机不启用
启动多个容器
## 5.Docker安装mysql
docker pull mysql
可以将mysql 的配置文件放到主机的/conf/mysql 文件夹中,以上命令会合并配置,使用自定义配置
docker 安装完mysql 后客户端无法访问
方法1
1.在虚拟机的centos 中安装 docker 的mysql 镜像。
docker run --name mysql01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
2 .在虚拟机外面通过客户端访问docker安装的mysql ,连接失败
(1)进入镜像中的mysql(ti 后面的字符串是mysql镜像ID)
docker exec -ti 2cbb0f246353 /bin/bash
(2)登录mysql
mysql -u root -p
show databases//显示所有库
(3)修改root 可以通过任何客户端连接
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
刷新权限
flush privileges;
方法2:
登录mysql
mysql -u root -p
show databases//显示所有库
用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password(‘123’) where user=‘root’ and host=‘localhost’;
mysql> flush privileges;
方法3:在忘记root密码的时候,可以这样
以windows为例:
- 关闭正在运行的MySQL服务。
- 打开DOS窗口,转到mysql\bin目录。
- 输入mysqld --skip-grant-tables 回车。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
- 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
- 输入mysql回车,如果成功,将出现MySQL提示符 >。
- 连接权限数据库: use mysql; 。
- 改密码:update user set password=password(“123”) where user=“root”;(别忘了最后加分号) 。
- 刷新权限(必须步骤):flush privileges; 。
- 退出 quit。
- 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。