对mysql部署命令的解读

介绍

当我们利用Docker安装应用时,Docker会 自动搜索并下载应用镜像(image)。镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker会在运行镜像时创建一个隔 离环境,称为容器(container)

镜像仓库:存储和管理镜像的平台,Docker官方维护了一个公共仓库: Docker Hub。

Docker-基础(数据卷、自定义镜像、Compose)_docker

命令解读

Docker-基础(数据卷、自定义镜像、Compose)_Docker_02

●docker run :创建并运行一个容器,-d 是让容器在后台运行

●--name mysql :给容器起个名字,必须唯一

●-p3306:3306:设置端口映射

●-e KEY=VALUE :是设置环境变量

●mysql :指定运行的镜像的名字

Docker-基础(数据卷、自定义镜像、Compose)_数据_03

镜像命名规范

●镜像名称- -般分两部分组成: [repository]:[tag]。

其中repository就是镜像名

tag是镜像的版本

●在没有指定tag时,默认是latest,代表最新版本的镜像

Docker-基础(数据卷、自定义镜像、Compose)_Docker_04

总结

docker run命令中的常见参数: .

  • -d:让容器后台运行
  • --name:给容 器命名
  • -e:环境变量
  • -p :宿主机端口 映射到容 器内端口

镜像名称结构:

  • Repository:TAG

镜像名                   版本号


基础

常见命令

Docker最常见的命令就是操作镜像、容器的命令,详见官方文档:http://docs.docker.com/

Docker-基础(数据卷、自定义镜像、Compose)_数据_05

案例

我们用一个案例来练习

需求:

  • 在DockerHub中搜索Nginx镜像,查看镜像的名称
  • 拉取Nginx镜像
  • 查看本地镜像列表
  • 创建并运行Nginx容器
  • 查看容器
  • 停止容器
  • 再次启动容器
  • 进入Nginx容器
  • 删除容器

拉取

docker pull nginx

Docker-基础(数据卷、自定义镜像、Compose)_docker_06

查看

docker images

Docker-基础(数据卷、自定义镜像、Compose)_Docker_07

将镜像保存到本地

docker save -o nginx.tar nginx:latest

Docker-基础(数据卷、自定义镜像、Compose)_Docker_08

删除镜像

docker rmi nginx:latest

Docker-基础(数据卷、自定义镜像、Compose)_docker_09

从本地下回来

docker load -i nignx.tar

Docker-基础(数据卷、自定义镜像、Compose)_docker_10

创建并运行

docker run -d --name nginx -p 80:80 nginx

查看容器状态(只查看在运行的)如果需要查看全部需要加 -a

docker ps

Docker-基础(数据卷、自定义镜像、Compose)_Docker_11

停掉容器

docker stop nginx

Docker-基础(数据卷、自定义镜像、Compose)_Docker_12

启动容器

docker start nginx

Docker-基础(数据卷、自定义镜像、Compose)_数据_13

命令别名

 vi ~/.bashrc

Docker-基础(数据卷、自定义镜像、Compose)_Docker_14

然后使别名生效

source /root/.bashrc

Docker-基础(数据卷、自定义镜像、Compose)_数据_15

数据卷

数据卷(volume) 是-一个虚拟目录,是容器内目录宿主机目录之间映射的桥梁。

Docker-基础(数据卷、自定义镜像、Compose)_Docker_16

常见命令

docker volume create 创建数据卷
docker volume ls 查看所有数据卷
docker volume rm	删除指定数据卷
docker volume inspect	查看某个数据卷的详请
docker volume prune	清除数据卷

注意:在执行docker run命令时,使用-V数据卷:容器内目录可以完成数据卷挂载

当创建容器时,如果挂载了数据卷且数据卷不存在,会自动创建数据卷

Docker-基础(数据卷、自定义镜像、Compose)_数据_17

本地挂载

●在执行docker run命令时,使用-v本地目录:容器内目录可以完成本地目录挂载

●本地目录必须以 "/”或"./"开头,如果直接以名称开头,会被识别为数据卷而非本地目录

-V mysq| : /var/lib/mysql会被识别为一 个数据卷叫mysq|

-V ./mysql : /var/lib/mysql会被识别为当前目录下的mysq|目录

自定义镜像

镜像就是包含了应用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。

Docker-基础(数据卷、自定义镜像、Compose)_Docker_18

镜像结构

  • 层(Layer)

添加安装包、依赖、配置等,每次操作都形成新的一层

  • 基础镜像(Baselmage)

应用依赖的系统函数库、环境、配置、文件等

  • 入口(Entrypoint)

镜像运行入口,一般是程序启动的脚本和参数

Docker-基础(数据卷、自定义镜像、Compose)_数据_19

Dockerfile

Dockerfile就是一个文本文件, 其中包含- -一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。将来Docker可以根据Dockerfile帮我们构建镜像。常见指令如下:

Docker-基础(数据卷、自定义镜像、Compose)_Docker_20

当编写好了Dockerfile,可以利用下面命令来构建镜像:

docker build -t myImage:1.0 .
  • -t:是给镜像起名,格式依然是repository:tag的格式,不指定tag时,默认为latest
  • .:是指定Dockerfile所在目录,如果就在当前目录,则指定为"."网络

网络

默认情况下,所有容器都是以bridge方式连接到Docker的一个虚拟网桥上:

Docker-基础(数据卷、自定义镜像、Compose)_数据_21

加入自定义网络的容器才可以通过容器名互相访问,Docker的网络操作命令如下:

DockerCompose

Docker Compose通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。

Docker-基础(数据卷、自定义镜像、Compose)_Docker_22

Docker-基础(数据卷、自定义镜像、Compose)_数据_23

Docker-基础(数据卷、自定义镜像、Compose)_Docker_24

命令格式如下:

Docker-基础(数据卷、自定义镜像、Compose)_docker_25