Docker快速入门指南(二)-镜像安装

本文是Docker快速入门的第二部分,主要介绍如何使用Docker部署MySQL应用,包括拉取镜像、创建容器、操作MySQL以及远程登录。此外,还详细讲解了Docker Compose的概念、组成、安装卸载过程,并列举了常用命令和模板文件的配置。
摘要由CSDN通过智能技术生成

4. Docker应用部署

4.1 以MySQL部署为例

参考:https://www.runoob.com/docker/docker-install-mysql.html

4.1.1. 拉取镜像
#从仓库拉取MYSQL 5.7镜像(具体版本可先进行search查询)
docker pull centos/mysql-57-centos7
4.1.2 创建容器
#创建mysql容器 -p: 设置端口映射 -e: 设置环境变量 MYSQL_ROOT_PASSWORD 是root用户的【远程】登陆密码
docker run -di --name=mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7
docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql57 (5eab2c29156912dd2c719b0ea56ecac051292d19aca531fe970f8bcd77ad8b51):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3305 -j DNAT --to-destination 172.17.0.4:3305 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1)).
 # 若报此异常,请检查防火墙,保证防火墙为开启状态
 #centos7命令开启防火墙,各版本略有差异
 # systemctl start firewalld  
4.1.3 操作容器MySQL
#进入容器
docker exec -it mysql5.7 /bin/bash
#登录mysql 【这里登录没有密码】
mysql -u root -p 

4.1.4 远程登录mysql

在这里插入图片描述

使用Navicat在windows中进行远程登录在docker容器中的mysql。

注意:因为容器创建时已使用端口映射,这里我们使用的是宿主机的ip的映射的端口
访问时,如果连接不上,请关闭容器所在主机的防火墙,或开放对应的端口

5. Docker Compose

5.1 Compose简介

5.1.1 概念

Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。它是一个定义和运行多容器的
docker应用工具。使用compose,你能通过YMAL文件配置你自己的服务,然后通过一个命令,你能使用配置文件创建和运行所有的服务。

5.1.2 组成

Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。

  • 工程(project):Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例。

  • 服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。每个服务都有自己的名
    字、使用的镜像、挂载的数据卷、所属的网络、依赖哪些其他服务等等,即以容器为粒度,用户需要Compose所完成的任务。

  • 项目(project):由一组关联的应用容器组成的一个完成业务单元,在docker-compose.yml中定义。即是
    Compose的一个配置文件可以解析为一个项目,Compose通过分析指定配置文件,得出配置文件所需完成的所有容器管理与部署操作。

Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。

使用一个Dockerfile模板文件,可以让用户很方便的定义一个单独的应用容器。在工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如:要部署一个Web项目,除了Web服务容器,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。

5.1.3 Compose 使用的三个步骤:
  • 使用 Dockerfile 定义应用程序的环境。

  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。

  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

5.2 安装与卸载

Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我们以编译好的二进制包方式安装在Linux系统中。

5.2.1. 安装
curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限
chmod +x /usr/local/bin/docker-compose
# 查看版本信息
docker-compose -version
5.2.2. 卸载
# 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose

5.3 Compose常用命令参考

Compose命令的基本的使用格式为:

docker-compose [-f 参数...] [options] 1 [COMMAND] [ARGS...]

命令选项如下:

-f,–file FILE指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定。
-p,–project-name NAME指定项目名称,默认将使用所在目录名称作为项目名。
-x-network-driver 使用Docker的可拔插网络后端特性(需要Docker 1.9 及以后版本)
-x-network-driver DRIVER指定网络后端的驱动,默认为bridge(需要Docker 1.9 及以后版本)
-verbose输出更多调试信息
-v,–version打印版本并退出
常用命令
1) up
#创建并启动容器 【在工程目录下执行】
docker-compose up -d
2)stop
#停止服务容器,不会删除
docker-compose stop [options] [SERVICE…]
3)down
#停止并移除容器、网络、镜像和数据卷
docker-compose down [options]

更多参考:https://cloud.tencent.com/developer/article/1494959

5.4 Compose模版文件

模板文件是使用Compose的核心,涉及的指令关键字也比较多,大部分指令与docker run 相关参数的含义都是类
似的。默认的模板文件名称为docker-compose.yml,格式为YAML格式。

#版本,docker-compose.yml的语法版本,一般使用3.1之后
version: "3.7"
services:
  #服务  这里的web可自定义
  web:
  	#镜像信息
    images: nginx
    #容器名  这里的web可自定义
    container_name: web
    ports:
      #端口映射
      - "8080:80"
    #设置环境变量
    environment: MYSQL_ROOT_PASSWORD: "root"
    # 目录挂载
    volumes:
      - /usr/local/abc:/usr/local/cba
    #服务启动后执行的命令
    command: /bin/bash
#volumes:

#networks:
# 若有设置networks  可使用docker network ls命令查看

Docker Compose的模板文件主要分为3个区域,如下:
services
服务,在它下面可以定义应用需要的一些服务,每个服务都有自己的名字、使用的镜像、挂载的数据卷、所属的网络、依赖哪些其他服务等等。
volumes
数据卷,在它下面可以定义的数据卷(名字等等),然后挂载到不同的服务下去使用。
networks
应用的网络,在它下面可以定义应用的名字、使用的网络类型等等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值