zoukankan      html  css  js  c++  java
  • docker容器引擎

    Docker容器引擎

    一:Docker的安装(以1809版本为例)

    1:修改内核参数

    [root@localhost dockerfile]# vim /etc/sysctl.conf

    在末尾添加:

    net.ipv4.ip_forward=1

    2:安装方法1(不能上网)

    1)先将Docker的仓库文件拷贝到Linux系统中

    2)修改yum配置文件,在末尾添加

    [root@localhost ~]# vim /etc/yum.repos.d/CentOS-Media.repo

    [docker]

    name=docker1809

    baseurl=file:///opt/yum-docker1809

    gpgcheck=0

    [root@localhost ~]# yum clean all

    3)安装

    [root@localhost ~]# yum -y install docker-ce

    4)启动docker服务

    [root@localhost ~]# systemctl start docker

    [root@localhost ~]# systemctl enable docker

    5)查看docker版本

    [root@localhost ~]# docker version

    Client:

     Version:           18.09.3

     API version:       1.39

     Go version:        go1.10.8

     Git commit:        774a1f4

     Built:             Thu Feb 28 06:33:21 2019

     OS/Arch:           linux/amd64

     Experimental:      false

    Server: Docker Engine - Community

     Engine:

      Version:          18.09.3

      API version:      1.39 (minimum version 1.12)

      Go version:       go1.10.8

      Git commit:       774a1f4

      Built:            Thu Feb 28 06:02:24 2019

      OS/Arch:          linux/amd64

      Experimental:     false

    方法二:能上网

    docker版本为1809

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    wget -O /etc/yum.repos.d/CentOS-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

    # yum install -y yum-utils device-mapper-persistent-data lvm2

    # yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    注意:上述两个语句是为了在linux中下载dockerrpm仓库文件,如果已经下载的有,这两部步可以不要

    [root@master ~]# yum install -y docker-ce-18.09.7

    注意:如果要安装最新版可以:yum install -y docker-ce

    [root@master ~]# systemctl enable docker

    [root@master ~]# systemctl start docker

    二:Docker镜像操作

    1:搜索镜像

    [root@localhost ~]# docker search dhcp

    [root@localhost ~]# docker search apache

    [root@localhost ~]# docker search httpd

    2:获取镜像

    [root@localhost ~]# docker pull httpd

    Using default tag: latest

    latest: Pulling from library/httpd

    743f2d6c1f65: Pull complete

    c92eb69846a6: Pull complete

    2211b052800a: Pull complete

    aed180197314: Pull complete

    7c472a4980a7: Pull complete

    Digest: sha256:680657b49788fc643cda8cbdcf0564474cb78c0d5ed53a3ea9cb3d56f9aacfc8

    Status: Downloaded newer image for httpd:latest

    注意:如果使用docker官方的docker仓库,下载会很慢,可以使用国内的镜像

    对于大于1.9docker版本可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

    此文件原本不存在,需要创建

    [root@localhost ~]# vim /etc/docker/daemon.json

    添加如下代码:

    {

    "registry-mirrors": ["https://v10sz3o0.mirror.aliyuncs.com"],

    "insecure-registries": ["192.168.1.149:8000"]

    }

    [root@localhost ~]# systemctl daemon-reload

    [root@localhost ~]# systemctl restart docker

    注释:

    https://v10sz3o0.mirror.aliyuncs.com为申请的阿里专属加速器

    如果没有专属加速器,可以使用其他国内仓库:https://registry.docker-cn.com

    没有此文件表示使用默认的docker官方仓库

    Docker镜像加速地址可以在阿里上申请

    https://cr.console.aliyun.com/cn-hangzhou/mirrors

    3:查看镜像信息

    1)查看本地所有镜像

    [root@localhost ~]# docker images

    REPOSITORY    TAG                 IMAGE ID            CREATED             SIZE

    httpd          latest              b7cc370ac278        2 days ago          132MB

    2)获取镜像详细信息

    [root@localhost ~]# docker inspect httpd

    3)为镜像重命名并设置新的标签

    [root@localhost ~]# docker tag httpd http:myhttpd

    [root@localhost ~]# docker images

    REPOSITORY   TAG                 IMAGE ID            CREATED             SIZE

    http          myhttpd             b7cc370ac278        2 days ago          132MB

    httpd         latest                b7cc370ac278        2 days ago          132MB

    4)删除镜像

    [root@localhost ~]# docker rmi httpd

    Untagged: httpd:latest

    Untagged: httpd@sha256:680657b49788fc643cda8cbdcf0564474cb78c0d5ed53a3ea9cb3d56f9aacfc8

    [root@localhost ~]# docker images

    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

    http                myhttpd             b7cc370ac278        2 days ago          132MB

    5)导出镜像

    [root@localhost ~]# docker save -o /root/http http

    6)导入镜像(要先把原来的http镜像删掉)

    [root@localhost ~]# docker images

    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

    http                myhttpd             b7cc370ac278        2 days ago          132MB

    [root@localhost ~]# docker rmi b7

    [root@localhost ~]# docker load --input /root/http

    三:Docker容器操作

    1:容器的创建与启动

    1)将镜像文件拷贝到系统

    2)导入镜像

    [root@localhost ~]# docker load --input centos-7

    [root@localhost ~]# docker images

    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

    http                myhttpd             b7cc370ac278        2 days ago          132MB

    httpd               latest              b7cc370ac278        2 days ago          132MB

    centos              latest              d123f4e55e12        18 months ago       197MB

    3)创建容器

    [root@localhost ~]# docker create -it centos  /bin/bash

    [root@localhost ~]# docker ps -a

    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

    a20112bccf57        centos              "/bin/bash"         2 seconds ago       Created                                 nifty_lumiere

    c713336886d5        d1                  "/bin/bash"         3 minutes ago       Created                                 hopeful_keldysh

    cd65cd6d83b9        httpd               "/bin/bash"         6 minutes ago       Created                                 stoic_yonath

    4)启动容器

    [root@localhost ~]# docker start a2011

    a2011

    [root@localhost ~]# docker ps -a | grep a2011

    a20112bccf57        centos              "/bin/bash"         7 minutes ago       Up 15 seconds                           nifty_lumiere

    5)创建并启动一次容器

    注意:此方法启动完容器后,容器就会停止

    [root@localhost ~]# docker run centos /bin/bash -c ls

    6)永久启动一个容器

    [root@localhost ~]# docker run -d centos /bin/bash -c "while true;do echo ok;done;"

    注释:

    -c:在容器中执行指令

    -d:以守护进程运行

    7)停止容器

    [root@localhost ~]# docker stop a20112bccf57

    8)进入容器

    [root@localhost ~]# docker start a2011

    [root@localhost ~]# docker exec -it a2011 /bin/bash

    [root@a20112bccf57 /]# ls

    anaconda-post.log  dev  home  lib64       media  opt   root  sbin  sys  usr

    bin                etc  lib   lost+found  mnt    proc  run   srv   tmp  var

    [root@a20112bccf57 /]# exit

    9)导出容器

    [root@localhost ~]# docker export a20>/root/mycentos

    10)导入容器

    注意:导入的容器在系统中会成为一个镜像

    [root@localhost ~]# docker import mycentos centos123

    [root@localhost ~]# docker images

    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

    centos123           latest              b6d1b0ebddca        11 seconds ago      197MB

    http                myhttpd             b7cc370ac278        2 days ago          132MB

    httpd               latest              b7cc370ac278        2 days ago          132MB

    ubuntu              latest              d131e0fa2585        13 days ago         102MB

    centos              latest              d123f4e55e12        18 months ago       197MB

    11)删除容器

    [root@localhost ~]# docker stop a20

    a20

    [root@localhost ~]# docker rm a20

    a20

    [root@localhost ~]# docker ps -a

    四:Docker资源控制

    1:对cpu的控制

    1)限制cpu使用率

    [root@localhost ~]# echo 2000 >/sys/fs/cgroup/cpu/system.slice/docker.service/cpu.cfs_quota_us

    注释:使用率为20%

    2)多任务按比例分配cpu

    [root@localhost ~]# docker run -tid --cpu-shares 1024 centos

    [root@localhost ~]# docker run -tid --cpu-shares 1024 ubuntu

    3)为容器分配内核

    [root@localhost ~]# docker run -tid --cpuset-cpus 0 centos

    注释:为centos分配0号内核,注意,不存在的内核不能调用

    2:对内存使用的限制

    (1) 分配内存上限

    [root@localhost ~]# docker run -tid -m 512m 192.168.1.149:8000/centos

    2)对内存blkio(每秒写入次数)的限制

    [root@localhost ~]# docker run -tid --device-write-bps /dev/sda:1MB centos

  • 相关阅读:
    2017-2018-1 20155304 20155332 实验二 固件程序设计
    《信息安全技术》实验二 口令破解
    2017-2018-1 20155304 《信息安全系统设计基础》第六周学习总结
    2017-2018-1 20155304 20155310 20155337 实验一 开发环境的熟悉
    2017-2018-1 20155304 《信息安全系统设计基础》第五周学习总结
    第五周 加分题-mybash的实现
    2017-2018-1 20155304 《信息安全系统设计基础》第四周学习总结
    2017-2018-1 20155304 《信息安全系统设计基础》第三周学习总结
    课下作业2
    课下作业1
  • 原文地址:https://www.cnblogs.com/ccshi/p/13154296.html
Copyright © 2011-2022 走看看