centos8安装docker/配置优化/基本操作命令指北
Author:zhoulujun Date:
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 有两种命令形式
docker <command> (options) # 老命令形式
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主要功能:
提供状态显示面板:显示主机或者swarm集群上有多少镜像,容器等
应用模板快速部署:可以使用预存的模板或者自己定制的模板快速部署
事件日志显示:对任何操作有记录,并且有页面可以显示审计日志
容器控制台操作:查看容器,管理容器,查看容器占用的性能(内存,cpu等)
Swarm集群管理:可以管理swarm集群,是最大的优点
登录用户管理:有完备的用户系统,权限控制
单机版安装命令如下:
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