• Docker


     

     

    Docker可以把项目和它所依赖的环境整合打包,非常方便!

    Docker的思想就来自于集装箱,应用之间相互隔离,隔离的思想

    Docker通过隔离机制,将服务器利用到极致

     

     

    官网:https://www.docker.com/

    仓库Docker Hub :https://hub.docker.com/

     

     

    安装

     

    docker 依赖运行的Linux内核环境,必须安装在Linux系统之上

     

    CentOS(64-bit) 7上 内核版本3.8以上

     

    查看内核版本

    [root@XiangCheng /]# cat /etc/redhat-release      
    CentOS Linux release 8.4.2105
    [root@XiangCheng /]# uname -r
    4.18.0-305.3.1.el8.x86_64
    [root@XiangCheng /]# 

     

    三件套:

    镜像(image): 就是一个模板,可以用来创建Docker容器,就像面向对象中的类

    容器(container):镜像的实例对象

    仓库(repositiroy):集中存放镜像的场所

     

     

    官方安装文档:https://docs.docker.com/engine/install/centos/

     

    先卸载旧版本,没有可以忽略

     sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine

     

    安装gcc相关依赖

    yum -y install gcc
    yum -y install gcc-c++

     

    设置存储库

     

    1.安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定的存储库。

    $ sudo yum install -y yum-utils  
    
    # 因为官方文档设置仓库地址是国外,这样会导致会很慢,
    # 设置阿里云仓库
    
    $ sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    # 更新一下yum软件包 索引
    yum makecache fast

     

    安装 启动 docker

    # 安装docker
    sudo yum install docker-ce docker-ce-cli containerd.io
    
    # 启动docker
    sudo systemctl start docker
    
    # 查看doker 版本
    docker version
    
    # hello-world 通过运行映像来验证 Docker 引擎是否已正确安装。
     sudo docker run hello-world

     

     

    卸载docker

    # 停止docker服务
    systemctl stop docker
    # 移除docker 应用
    yum remove docker-ce docker-ce-cli containerd.io
    # 删除docker遗留文件
    rm -rf /var/lib/docker
    rm -rf /var/lib/containerd

     

    配置阿里云镜像加速器

     

    命令

     

    帮助启动类

    # 启动docker
    systemctl start docker
    
    # 停止docker
    systemctl stop docker
    
    # 重启docker
    systemctl restart docker
    
    # 查看docker 状态
    systemctl status docker
    
    #开机启动
    systemctl enable docker
    
    # 查看docker 概要信息
    docker info
    
    # 查看docker 总体帮助文档
    docker --help
    
    # 查看docker 命令帮助文档
    docker 具体命令 -help
     

    镜像命令

    # 罗列出本机的镜像
    docker images
    
    # 罗处所以本机image ID
    docker images -qa

     

    REPOSITORY : 镜像的仓库源

    TAG : 镜像的标签

    IMAGE ID : 镜像ID

    CREATED : 镜像创建时间

    SIZE : 镜像大小

    同一仓库源可以有多个tag版本,代表这个仓库源的不同版本,我们使用REPOSITORY:TAG来定义不同的镜像,如果你不指定以一个镜像的版本标签,例如你只使用ubuntu,docker将默认使用ubuntu:latest

     

    # 去仓库查看某镜像
    docker search [OPTIONS] 某镜像名字
    
    --limit n  : 只列出排名前n个镜像

     

    NAME: 镜像名称

    DESCRIPTION: 镜像说明

    STARS: 点赞数量

    OFFICIAL: 是否是官方的

    AUTOMATED: 是否是自动构建的

     

    # 拉取某个镜像,没有TAG默认最新版本
    docker pull 镜像名字[:TAG]
     
    
    # 查看镜像 容器 数据卷所占的空间
    docker system df

     

    TYPE : 种类

    Images(镜像) 、 Containers(容器 )、 Local Volumes ( 本地卷) Build Cache(构建缓存)

    TOTAL : 总数

    ACTIVE : 活动中

    SIZE : 大小

    RECLAIMABLE : 伸缩性

     

     

    # 删除镜像
    docker rmi [镜像名称|镜像ID]
    
    # 强制删除镜像
    docker rmi  -f [镜像名称|镜像ID]
    
    # 删除多个
    docker rmi -f [镜像名称1:TAG 镜像名2]
    
    # 删除所有imgaes
    docker rmi -f $(docker images -qa)

     

    容器命令

     

    拉取系统镜像

    # 创建centos 镜像
    docker pull centos
    # 创建ubuntu 镜像
    docker ubuntu

    新建启动容器

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    
    [OPTIONS]
        --name="容器名"  :为容器指定一个名称
        -d  : 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
        -i  :以交互式模式运行容器,通常与 -t 同时使用
        -t  : 为容器重新分配一个伪输入终端,通常与-i 同时使用;也即启动交互式容器(前台有伪终端,等待交互)
        -P  :随机端口映射,大写P
        -p  :指定端口映射,小写p
        
        
     # 实例化一个ubuntu系统
    docker run -it ubuntu /bin/bash

    参数

    说明

    -p hostPort:containerPort

    端口映射 -p 8080:80

    -p ip:hostPort:containerPort

    配置监听地址 -p 10.0.0.100:8080:80

    -p ip::containerPort

    随机分配端口 -p 10.0.0.100::80

    -p hostPort:containerPort:udp

    指定协议 -p 8080:80:tcp

    -p 81:80 -p 443:443

    指定多个

     

    # 列出当前所有正在运行的容器实列
    docker ps [OPTIONS]
    
    [OPTIONS]
        -a:列出当前所有正在运行+历史上运行过的容器
        -l:显示最近创建的容器
        -n:显示最近n个创建的容器
        -q:静默模式,只显示容器编号
        
    # 退出容器  退出后容器停止
    exit   
    
    #退出容器 容器不停止
    ctrl+p+q
    
    # 启动已停止运行的容器
    docker start [容器ID|容器名]
    
    # 重启容器
    docker restart [容器ID|容器名]
    
    # 停止容器
    docker stop [容器ID|容器名]
    
    # 强制停止容器
    docker kill [容器ID|容器名]
    
    #删除已停止的容器 ,如果未停止强制删加 -f 参数
    docker rm 容器ID  
    
    # 删除所有的容器
    docker rm -f $(docker ps -a -q)
    docker ps -a -q | xargs docker rm
    
    # 查看某容器日志
    docker logs [容器ID|容器名]
    
    # 进入正在运行的容器
    docker exec -it [容器ID] /bin/bash  推荐
    docker attach [容器ID]
    
    # 把容器内的文件复制到主机
    docker cp 容器ID:容器内路径 目的主机路径
    
    # 导出容器,做备份
    docker export 容器ID > 文件名.tar
    
    # 导入一个镜像
    cat 文件名.tar | docker import -镜像用户/镜像名:镜像版本号

     

    安装一些软件

     

    tomcat

    # 拉取tomcat 镜像
    docker pull billygoo/tomcat8-jdk8
    
    # 直接执行,没有会自动拉
    docker run -d -p 8080:8080 --name mytomcat8 billygoo/tomcat8-jdk8

     

    mysql

    # 安装镜像
    docker pull mysql:5.7
    
    # 创建一个简单容器
    docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=hd123456 -d mysql:5.7
    
    # 创建mysql挂上数据卷
    
    
    docker run -d -p 3306:3306 --privileged=true -v /xc/mysql/log:/var/log/mysql -v /xc/mysql/data:/var/lib/mysql -v /xc/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=hd123456 --name mysql01 mysql:5.7
    
    
    
    
    
    SHOW VARIABLES LIKE 'character%'

     

    在宿主机 conf下 :

    vi my.cnf
    
    
    
    # 输入以下数据
    
    [client]
    default_character_set=utf8
    
    
    [mysqld]
    collation_server = utf8_general_ci
    character_set_server = utf8
    
    
    
    # 在重启容器
    docker restart mysql01
  • 相关阅读:
    开工--行胜于言
    操作系统之内存管理
    C陷阱与缺陷读书笔记(一)
    关于复杂度的一些基本的定义
    归并排序
    快速排序
    前序中序后序非递归遍历
    直接插入排序
    冒泡排序
    程序内存映像
  • 原文地址:https://www.cnblogs.com/niunai/p/16152113.html
Copyright © 2020-2023  润新知