zoukankan      html  css  js  c++  java
  • Docker 入门

    docke基础

    0. 基础概念

    • 容器是随时创建,随时删除的,轻量级,每次docker run 都会生成新的容器记录

    1. 安装docker

    # 删除旧版本的docker
    yum remove docker*
    # 指定docker-ce源
    wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # 安装
    yum install -y docker-ce
    
    # 启动docker
    systemctl start docker
    # 编辑配置文件 /etc/docker/daemon.json
    {
        "registry-mirrors": [
            "https://1nj0zren.mirror.aliyuncs.com",
            "https://docker.mirrors.ustc.edu.cn",
            "http://f1361db2.m.daocloud.io",
            "https://registry.docker-cn.com"
        ]
    }
    # 测试hello-world
    docker run -it hello-world
    

    2. docker仓库

    • 使用官方的 registry 镜像来启动私有仓库。
    • 默认情况下,仓库会被创建在容器的 /var/lib/registry 目录下。
    • 可以通过 -v 参数来将镜像文件存放在本地的指定路径。

    搭建私有 docker 仓库流程

    # 1. 宿主机port:docker的port
    # --privileged=true,docker容器的安全机制:设置特权级运行的容器
    # --restart=always,仓库挂掉会重启
    docker run --privileged=true --restart=always -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
    
    # 2. 修改 /etc/docker/daemon.json
    {
        # 镜像加速器
        "registry-mirrors": [
            "https://1nj0zren.mirror.aliyuncs.com",
            "https://docker.mirrors.ustc.edu.cn",
            "http://f1361db2.m.daocloud.io",
            "https://registry.docker-cn.com"
            ],
        # 本地仓库地址
        "insecure-registries":["172.16.44.142:5000"]
    }
    
    # 3. 修改docker的启动文件
    vim /lib/systemd/system/docker.service
    [Service]
    EnvironmentFile=-/etc/docker/daemon.json
    # 4. 修改了docker配置文件,重新加载docker
    systemctl daemon-reload
    # 5. 重启docker服务
    systemctl restart docker
    # 6. 修改名称,push镜像
    docker tag redis-test 172.16.44.142:5000/redis
    docker push 172.16.44.142:5000/redis
    # 7. 查看
    curl 172.16.44.142:5000/v2/_catalog
    

    3. docker-compose

    • docker编排工具:swarms,docker-compose
    • yml/yaml 语法
    # 安装docker-compose
    pip install docker-compose
    # yml可以用来做配置文件,后缀名:yml,yaml,数据类型string,int,list,dict...
    vim docker-compose.yml
    version: "3"			# 和docker版本相对应
    services:
    	web: 
    		build: 
    			context: .  					# 指定dockerfile文件目录
    			dockerfile: "dockerfile文件"	        # 指定dockerfile文件名
    		ports:
    		- "3000:5000
    	redis:
    		image: "redis"	# 镜像名称
    :wq
    # 启动
    docker-compose up
    
    # flask应用
    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return 'Hello Flask'
    
    if __name__ = '__main__':
        app.run('0.0.0.0', 5000)
    
    • yml文件语法
    # dict类型,冒号、- 后面都必须有空格, 严格要求缩进
    name: 'henry'
    age: 19
    addr:
    - 'haidian'
    - 'beijing'
    

    4. 常用命令

    # 删除 stoped 的容器
    docker-compose rm
    # 重新构建容器,自动调用当前目录 .yml文件
    docker-compose build 
    # 查看容器状态
    docker-compose ps
    # 查看 镜像
    docker-compose images
    
  • 相关阅读:
    oracle多表关联删除的两种方法
    T100——汇总错误消息显示
    T100——程序从标准签出客制后注意r.c和r.l
    本地DataGrip连接阿里云MySQL
    mysql for mac 上的安装及用DataGrip连接
    mac 上安装vue模版-D2 Admin
    Python 3.7版本关于json.dump失效
    设置第三方的SMTP服务
    Apache 配置代理服务
    PyCharm 通过Github和Git上管理代码
  • 原文地址:https://www.cnblogs.com/henryw/p/11564423.html
Copyright © 2011-2022 走看看