Docker 的概念及使用【阿里云】

一、概念

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

  1. dockerClient客户端

  2. Docker Daemon守护进程

  3. Docker Image镜像

  4. DockerContainer容器

Docker 的概念及使用【阿里云】

Docker 的概念及使用【阿里云】

 

二、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 的概念及使用【阿里云】

删除镜像文件

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 的概念及使用【阿里云】

查看停止:docker container ls -a

Docker 的概念及使用【阿里云】

开启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;

Docker 的概念及使用【阿里云】

开启后可用本地图形化界面进行连接

Docker 的概念及使用【阿里云】

 

查看错误日志:journalctl -xe

Docker 的概念及使用【阿里云】

查看状态:systemctl status docker

Docker 的概念及使用【阿里云】

Docker 的概念及使用【阿里云】

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不支持,使用后性能降低)

数据库不加锁,数据库会自动选择锁