一、概念
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
-
dockerClient客户端
-
Docker Daemon守护进程
-
Docker Image镜像
-
DockerContainer容器
二、Docker的安装与简单使用
安装
CentOS: yum install docker-io
Ubuntu: apt install docker-ce
个人安装阿里云的Ubuntu命令使用:apt install docker.io
如果失败更新后再安装一次:apt-get update
启动Docker
CentOS: systemctl start docker
Ubuntu: service docker start
查看docker相关信息
docker info / version
下载镜像
docker pull <image-name>:<version>
举栗子:下载monggodb——》docker pull mongo:latest
查看镜像文件
docker images、docker image ls
删除镜像文件
docker rmi <name>
查看docker run的详细信息
docker run --publish
创建容器并运行【如果没有则自动下载】
docker run -p <out-port>:<in-port> -d --name <container-name> <image-name>:<version>
【如果是MySQL容器要指定管理员密码】
-e MYSQL_ROOT_PASSWORD=123456
举栗子1:
docker run -p 3306:3306 --name mysql57 -d mysql
mysql要指定密码:docker run -p 3306:3306 --name mysql57 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
可以改端口号:docker run -p 3308:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
【需要开启阿里云】
举栗子2:
开启Nginx:docker run -p 80:80 --name mynginx -d nginx:latest
开启Mongo:docker run -p 27017:27017 --name mymongo -d mongo:latest
拷贝文件:docker conatiner cp index.html mynginx:/usr/share/ginx/html
查看进程
ps -ef | grep mysql
停止容器与重启容器
docker stop <container-name>
举栗子:
停止:docker stop mysql8
查看停止:docker container ls -a
开启mysql:docker start mysql57
启动容器
docker start <container-name>
查看所有容器
docker container ls -a
查看正在运行的容器
docker ps
对那些不会自动终止的容器可以使用命令
docker container kill <container-id>
删除容器(慎重的使用!!!)
docker container rm <container-name>
举栗子:docker container rm mysql57
清除所有的容器
docker container prune (慎重的使用!!!否则从删库到跑路了哟)
如果使用MySQL 8.x,可能因为客户端工具过旧导致无法连接
可以登录到运行MySQL的容器进行下面的配置:
docker container exec -it <container-name> /bin/bash
进入容器举栗子:docker container exec -it mysql8 /bin/bash
mysql -u root -p
解决方法-——》改root:
alter user 'root'@'%' identified with mysql_native_password by '123456' password expire never;
进入容器的mysql后举栗子【使用命令】:
alter user 'root'@'%' identified with mysql_native_password by '123456';
use mysql;
mysql> select user, host, authentication_string from user;
开启后可用本地图形化界面进行连接
查看错误日志:journalctl -xe
查看状态:systemctl status docker
三、拓展内容
拓展1:事务处理四大特性-ACDI 【原子性 ,一致性,隔离性,持久性】
拓展2:SQL分为:
- DDL: create drop alter
- DML: insert delete update
- DQL: select
- DCL: grant revoke
SQL语言共分为四大类:
1.DQL语句(数据查询语言-Data Query Language):Select
2.DML语句(数据操作语言-Data Manipulation Language):Insert、Update、Delete
3. DDL语句(数据定义语言-data define language):Create、Alter、Drop、Truncate
4.DCL语句(数据控制语言-DataControlLanguage):Grant:授权、Revoke:撤销授权 、
事务控制语句 :Commit 、Rollback、Savepoint
拓展3:关系型数据库如何保证数据完整性:【经常问到】
1.实体完整性 - 每个实体都是独一无二
- 主键 / 唯一索引
2.参照完整性 - 外键 -
3.域完整性 - 列数据有效的
- 数据类型 / 长度 / 默认值约束 / 非空约束 / 检查约束(mysql不支持,使用后性能降低)
数据库不加锁,数据库会自动选择锁