• home > tools > Virtual > Docker >

    centos8安装docker/配置优化/基本操作命令指北

    Author:zhoulujun Date:

    centos7 centos8 安装docker步骤基本一致。但docker分为两个版本,社区版:docker-ce、企业版:docker-ee,社区版是费的支持周期 7 个月。linux内核,docker官方说至少3 8以上,建议3 10以上。centos8都是4了

    docker安装

    docker 分为两个版本,docker-ce(社区版) 和 docker-ee(企业版),docker-ce 是免费的支持周期 7 个月,ee 需要付费,支持周期 24 个月。

    安装 docker 可以直接去查看官网安装文档页面

    国内从 Docker Hub 拉取镜像会很慢,我们可以更换镜像源,对于 windows 和 mac 可以直接去设置 daemon 中设置 registry mirrors。

    linux 可以修改 /etc/docker/daemon.json 文件。

    {
      "registry-mirrors": [
        "https://dockerhub.azk8s.cn",
        "https://reg-mirror.qiniu.com"
      ]
    }

    设置yum源

    • yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)

    • yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)

    如果没有安装 yum-util 提供yum-config-manager功能。会提示,Install package 'yum-utils' to provide command 'yum-config-manager'? [N/y] ,输入y,确定即可

    可以查看所有仓库中所有docker版本,并选择特定版本安装

    yum list docker-ce --showduplicates | sort -r

    安装Docker,命令:yum install docker-ce-版本号,我选的是docker-ce-18.03.1.ce,如下

    yum install docker-ce-18.03.1.ce

    输入后,直接输入y一路确定下去即可。

    我们安装的 Docker 分为两个部分 Docker Client 和 Docker Server。我们通过 Client 发送命令到 Server,由 Server 来创建镜像,运行容器等工作。

    docker基本命令

    设置开机启动

    • systemctl start docker 启动

    • systemctl enable  docker 设置开机启动

    docker 有两种命令形式


    1. docker <command> (options) # 老命令形式

    2. docker <command> <sub-command> (options) # 新命令形式

    docker基本操作命令

    • docker info 查看全系统的信息,比如配置和当前状态信息。

    • docker version 查看版本

    • docker --help 查看帮助信息

    • docker stats 显示容器实时的资源使用情况, `-a` 参数 让输出显示到屏幕上,而不是只是返回一个 id

    • docker ps 查看当前正在运行的容器,`-a` 参数 查看所有容器的状态

    • docker start/stop id/name 启动/停止某个容器

    • docker restart 容器 [...] ,重启一个或多个容器

    • docker attach id 进入某个容器(使用exit退出后容器也跟着停止运行)

    • docker kill 容器,让容器中的进程马上关闭, 而stop 命令:容器 10 秒中没有响应,docker 会自动执行 kill 命令

    镜像与容器操作命令

    • docker create 镜像名称,`--name 名称` 可以给创建的容器一个名称,这样就不会是随机名称

    • docker images 查看本地镜像

    • docker start 容器 [...],运行一个或多个容器。

    • docker run 镜像 [COMMAND] ,如果镜像不存在,会自动去远端仓库拉取,就执行docker pull/docker create/docker start

      例如:docker run --name webserver --rm -d -p 80:80 nginx

      • --name 名称 设置容器名称

      • -d 在背景以守护进程运行

      • --rm 当容器推出时自动删除

      • -p 机器端口:容器端口 机器端口映射到容器端口

      • -e 变量名=变量值 设置环境变量

      • -i 保持开启 STDIN,让容器可以接受到我们键盘发出的命令

      • -t 分配一个伪终端

    • docker rm id/name 删除某个容器

    • docker rmi id/name 删除某个镜像

    • docker build -t soar/centos:7.1 .  通过当前目录下的Dockerfile创建一个名为soar/centos:7.1的镜像

    命令非常多,可以查看http://www.docker.org.cn/dockerppt/106.html

    docker配置优化

    SELinux 或 AppArmor

    Docker程序的SELinux支持是默认无效的,并且需要使用—selinux功能来被激活。通过使用新增的—security-opt来加载SELinux或者AppArmor的策略对容器的标签限制进行配置。

    docker run --security-opt=secdriver:name:value -i -t centos bash


    守护特权

    不要使用–privileged命令行选项。这本来允许容器来访问主机上的所有设备,并为容器提供一个特定的LSM配置(例如SELinux或AppArmor),而这将给予如主机上运行的程序同样水平的访问。避免使用–privileged有助于减少主机泄露的***面和潜力。然而,这并不意味着程序将没有优先权的运行,当然这些优先权在最新的版本中还是必须的。发布新程序和容器的能力只能被赋予到值得信任的用户上。通过利用-u选项尽量减少容器内强制执行的权限。

    docker run -u-it/bin/bash

    Docker组的任何用户部分可能最终从容器中的主机上获得根源0

    cgroups 硬件资源限制

    CPU使用率:

    docker run -it --rm --cpuset=0,1 -c 2 ...

    内存使用:

    docker run -it --rm -m 128m ...

    设备控制组(/dev/)

    如果需要,使用内置的设备选项(不使用-v与–privileged参数)。此功能在推出1.2版本[12]。例如(声卡使用):

    docker run --device=/dev/snd:/dev/snd …

    存储使用:

    docker -d --storage-opt dm.basesize=5G

    磁盘I/O:

    不支持Docker。BlockIO*属性可以通过systemd暴露,并且在支持操作系统中被用来控制磁盘的使用配额。

    GUI管理docker

    这里推荐使用 Portainer 作为容器的 GUI 管理方案。官方地址:https://portainer.io/install.html

    Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。

    Portainer主要功能:

    1. 提供状态显示面板:显示主机或者swarm集群上有多少镜像,容器等

    2. 应用模板快速部署:可以使用预存的模板或者自己定制的模板快速部署

    3. 事件日志显示:对任何操作有记录,并且有页面可以显示审计日志

    4. 容器控制台操作:查看容器,管理容器,查看容器占用的性能(内存,cpu等)

    5. Swarm集群管理:可以管理swarm集群,是最大的优点

    6. 登录用户管理:有完备的用户系统,权限控制

    单机版安装命令如下:

    docker volume create portainer_data
    docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

    访问你的 IP:9000 即可进入容器管理页面。

    在有多台Docker的情况下,进行集群管理就十分重要了,Portainer也支持集群管理,Portainer可以和Swarm一起来进行集群管理操作

    参考文章:

    命令简单应用–docker https://www.centos.bz/2019/07/命令简单应用-docker/

    Docker 零基础入门 https://www.centos.bz/2019/07/docker-零基础入门/#镜像

    Portainer一个轻量级的Docker环境管理UI https://www.kubernetes.org.cn/5883.html

    linux安装docker https://www.jianshu.com/p/2dae7b13ce2f



    转载本站文章《centos8安装docker/配置优化/基本操作命令指北》,
    请注明出处:https://www.zhoulujun.cn/html/tools/Virtual/docker/8351.html