zoukankan      html  css  js  c++  java
  • Centos7安装docker与docker-compose

    Docker是一个开源的容器虚拟化平台 , Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成一切准备工作。;

    - CentOS 7.0下Docker的安装

    1.查看内核版本(Docker需要64位版本,同时内核版本在3.10以上,如果版本低于3.10,需要升级内核):

    1
    uname -r

    2.更新yum包:

    1
    yum update

    3.添加yum仓库:

    1
    2
    3
    4
    5
    6
    7
    8
    sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
    [dockerrepo]
    name=Docker Repository
    baseurl=https://yum.dockerproject.org/repo/main/centos/7/
    enabled=1
    gpgcheck=1
    gpgkey=https://yum.dockerproject.org/gpg
    EOF

    4.安装Docker

    1
    yum install docker-engine

    5.启动Docker

    1
    systemctl start docker.service 或者 service docker start

    6.使用Docker国内镜像(为Docker镜像下载提速,非必须)

    1
    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://fe8a7d6e.m.daocloud.io

    - docker-compose 简介

    一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services 来定义,然后使用 docker-compose 脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。完整的命令列表如下:

    build 构建或重建服务
    help 命令帮助
    kill 杀掉容器
    logs 显示容器的输出内容
    port 打印绑定的开放端口
    ps 显示容器
    pull 拉取服务镜像
    restart 重启服务
    rm 删除停止的容器
    run 运行一个一次性命令
    scale 设置服务的容器数目
    start 开启服务
    stop 停止服务
    up 创建并启动容器

    参考 https://docs.docker.com/compose/install/ 。你能运行Compose在OSX和64位Linux。当前不支持Windows操作系统。

    - 安装Docker Compose

    curl方式

    1
    2
    3
    4
    5
    curl -L https://github.com/docker/compose/releases/download/1.7.0/docker-compose-`uname -s `-`uname -m` > /usr/local/bin/docker-compose

    chmod +x /usr/local/bin/docker-compose

    docker-compose -v

    python-pip 方式

    1
    2
    3
    4
    5
    6
    7
    8
    9
    yum -y install -y epel-release	#安装pip需要先安装epel-release包

    yum install -y python-pip #安装pip

    pip install --upgrade pip #升级pip

    pip install docker-compose #安装docker-compose

    docker-compose -v #查看docker-compose的版本

    如果docker-compose报错

    1
    2
    3
    4
    5
    6
    7
    8
    Traceback (most recent call last):  
    File "/usr/bin/docker-compose", line 5, in <module>
    from pkg_resources import load_entry_point
    File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 3011, in <module>
    parse_requirements(__requires__), Environment()
    File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 626, in resolve
    raise DistributionNotFound(req)
    pkg_resources.DistributionNotFound: backports.ssl-match-hostname>=3.5

    输入:

    1
    pip install --upgrade backports.ssl_match_hostname

    配置文件

    Compose的配置文件是docker-compose.yml。让我们看看下面这个文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    mysqldb:
    image: [classroom.example.com:5000/]mysql
    environment:
    MYSQL_DATABASE: sample
    MYSQL_USER: mysql
    MYSQL_PASSWORD: mysql
    MYSQL_ROOT_PASSWORD: supersecret
    mywildfly:
    image: [classroom.example.com:5000|arungupta]/wildfly-mysql-javaee7
    links:
    - mysqldb:db
    ports:
    - 8080

    a. 定义了两个服务分别叫做mysqldbmywildfy

    b. 使用image定义每个服务的镜像名

    c. MySQL容器的环境变量定义在environment

    d. MySQL容器使用linksWildFly容器链接

    e. 使用ports实现端口转发

    启动服务

    1.如果你从互联网运行,将docker-compose-internet.yml保存为docker-compose.yml

    2.如果你使用教师给的镜像,将docker-compose-instructor.yml保存为docker-compose.yml

    3.使用下面的命令,所有的服务将使用后台模式被启动

    1
    docker-compose up -d

    显示的输出如下:
    Creating attendees_mysqldb_1... Creating attendees_mywildfly_1...

    使用-f指定代替的compose文件。

    使用-p指定代替compose文件所在的目录。

    这里提供了一个整合的列表显示所有启动的服务和容器。

    同时,通常使用docker ps命令来验证应用的容器,和在Docker主机上运行的其他容器。

    1
    2
    3
    CONTAINER ID        IMAGE                                    COMMAND                CREATED             STATUS              PORTS                              NAMES
    3598e545bd2f arungupta/wildfly-mysql-javaee7:latest "/opt/jboss/wildfly/ 59 seconds ago Up 58 seconds 0.0.0.0:32773->8080/tcp attendees_mywildfly_1
    b8cf6a3d518b mysql:latest "/entrypoint.sh mysq 2 minutes ago U
  • 相关阅读:
    RMAN主要命令 show,list,crosscheck,delete详解
    CentOS6.2上安装Oracle10g报ins_emdb.mk错误处理方法
    CentOS 6.3(x86_32)下安装Oracle 10g R2
    关于约束ENABLE NOVALIDATE的一个疑问
    mongodb drop不释放磁盘空间
    Drop a database in MongoDB
    linux 中使用iptables 防止ddocs及cc攻击配置 。
    MySQL用Load Data local infile 导入部分数据后中文乱码
    微信小程序开发:学习笔记[7]——理解小程序的宿主环境
    软考解析:2016年下半年下午试卷
  • 原文地址:https://www.cnblogs.com/lywJ/p/10716062.html
Copyright © 2011-2022 走看看