对mysql部署命令的解读
介绍
当我们利用Docker安装应用时,Docker会 自动搜索并下载应用镜像(image)。镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker会在运行镜像时创建一个隔 离环境,称为容器(container) 。
镜像仓库:存储和管理镜像的平台,Docker官方维护了一个公共仓库: Docker Hub。
命令解读
●docker run :创建并运行一个容器,-d 是让容器在后台运行
●--name mysql :给容器起个名字,必须唯一
●-p3306:3306:设置端口映射
●-e KEY=VALUE :是设置环境变量
●mysql :指定运行的镜像的名字
镜像命名规范
●镜像名称- -般分两部分组成: [repository]:[tag]。
其中repository就是镜像名
tag是镜像的版本
●在没有指定tag时,默认是latest,代表最新版本的镜像
总结
docker run命令中的常见参数: .
- -d:让容器后台运行
- --name:给容 器命名
- -e:环境变量
- -p :宿主机端口 映射到容 器内端口
镜像名称结构:
- Repository:TAG
镜像名 版本号
基础
常见命令
Docker最常见的命令就是操作镜像、容器的命令,详见官方文档:http://docs.docker.com/
案例
我们用一个案例来练习
需求:
- 在DockerHub中搜索Nginx镜像,查看镜像的名称
- 拉取Nginx镜像
- 查看本地镜像列表
- 创建并运行Nginx容器
- 查看容器
- 停止容器
- 再次启动容器
- 进入Nginx容器
- 删除容器
拉取
docker pull nginx
查看
docker images
将镜像保存到本地
docker save -o nginx.tar nginx:latest
删除镜像
docker rmi nginx:latest
从本地下回来
docker load -i nignx.tar
创建并运行
docker run -d --name nginx -p 80:80 nginx
查看容器状态(只查看在运行的)如果需要查看全部需要加 -a
docker ps
停掉容器
docker stop nginx
启动容器
docker start nginx
命令别名
vi ~/.bashrc
然后使别名生效
source /root/.bashrc
数据卷
数据卷(volume) 是-一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。
常见命令
docker volume create 创建数据卷
docker volume ls 查看所有数据卷
docker volume rm 删除指定数据卷
docker volume inspect 查看某个数据卷的详请
docker volume prune 清除数据卷
注意:在执行docker run命令时,使用-V数据卷:容器内目录可以完成数据卷挂载
当创建容器时,如果挂载了数据卷且数据卷不存在,会自动创建数据卷
本地挂载
●在执行docker run命令时,使用-v本地目录:容器内目录可以完成本地目录挂载
●本地目录必须以 "/”或"./"开头,如果直接以名称开头,会被识别为数据卷而非本地目录
-V mysq| : /var/lib/mysql会被识别为一 个数据卷叫mysq|
-V ./mysql : /var/lib/mysql会被识别为当前目录下的mysq|目录
自定义镜像
镜像就是包含了应用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。
镜像结构
- 层(Layer)
添加安装包、依赖、配置等,每次操作都形成新的一层
- 基础镜像(Baselmage)
应用依赖的系统函数库、环境、配置、文件等
- 入口(Entrypoint)
镜像运行入口,一般是程序启动的脚本和参数
Dockerfile
Dockerfile就是一个文本文件, 其中包含- -一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。将来Docker可以根据Dockerfile帮我们构建镜像。常见指令如下:
当编写好了Dockerfile,可以利用下面命令来构建镜像:
docker build -t myImage:1.0 .
- -t:是给镜像起名,格式依然是repository:tag的格式,不指定tag时,默认为latest
- .:是指定Dockerfile所在目录,如果就在当前目录,则指定为"."网络
网络
默认情况下,所有容器都是以bridge方式连接到Docker的一个虚拟网桥上:
加入自定义网络的容器才可以通过容器名互相访问,Docker的网络操作命令如下:
DockerCompose
Docker Compose通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。
命令格式如下: