1、简介
Docker是一个开源的应用容器引擎;是一个轻量级容器技术;
Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;
运行中的这个镜像称为容器,容器启动是非常快速的。
2、核心概念
docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker客户端(Client):连接docker主机进行操作;
docker仓库(Registry):用来保存各种打包好的软件镜像;
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
3、安装Docker
3.1 检查内核版本,必须是3.10及以上
uname -r
3.2 使用 root 权限登录 Centos。确保 yum 包更新到最新(不然运行会报错)
yum update
3.3 安装依赖
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
3.4 安装docker
yum install docker
3.5 查看docker版本
docker version
3.6 启动docker
systemctl start docker
3.7 设置docker开启启动
systemctl enable docker
3.8 关闭docker
systemctl stop docker
3.9 测试安装效果
Docker的简单运用---Hello World
将名为 hello-world 的 image 文件从仓库抓取到本地。
docker pull library/hello-world
运行
docker run hello-world
正确的效果:
4、Docker常用命令&操作
4.1 镜像操作
https://hub.docker.com/
4.2、容器操作(安装mysql为例)
搜索镜像
docker search mysql
拉取镜像(下载)
docker pull mysql 若需要选择版本则如: docker pull mysql:8.0
启动(做了端口映射)
docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql ---------- mysql02:设置的容器名称,可自行设置。 -p:将容器内部使用的网络端口映射到我们使用的主机上。 -d:让容器在后台运行 设置 root 用户默认密码是 123456
进入容器
docker exec -it 容器ID /bin/bash
登录mysql
mysql -uroot -p123456
mysql远程登录相关
Navicat 远程连接报错: 进行授权远程连接(注意mysql 8.0跟之前的授权方式不同) 授权 GRANT ALL ON *.* TO 'root'@'%'; 刷新权限 flush privileges 此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则 更改加密规则 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 更新root用户密码 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 刷新权限 flush privileges; OK,设置完成,再次使用 Navicat 连接数据库
其他容器常用命令:
1.查看运行中的容器 docker ps 2. 停止运行中的容器 docker stop 容器的id 3.查看所有的容器 docker ps -a 4.启动容器 docker start 容器id 5.删除一个容器 docker rm 容器id 6.查看容器的日志 docker logs container-name/container-id 7.查看容器的日志 docker logs container-name/container-id 8.更多命令参看 https://docs.docker.com/engine/reference/commandline/docker/
4、卸载docker
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine