Ctrl+D可以收藏本站。也可以随便逛逛,希望本站可以让你轻松的获取一些内容

Docker运维知识—管理员篇

无人驾驶 求索 3122次浏览 0个评论

1,docker介绍

clipboard.png


  1. Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

  2. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

  3. 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

理解一下仓库-容器-镜像的关系


容器--实际操作的虚拟机


镜像--类似ubuntu和windows的iso安装包


仓库--存放这些镜像的地方


自己定义好的容易可以打包成镜像然后push到仓库中

2,docker运维管理

docker 仓库


与github类似 docker hub也是一个存放容器的远程仓库,当我们配置好一个容器系统环境,可以直接push到远程仓库,之后可以在任意一台宿主机pull到本地使用。


这里,我们使用docker hub公共仓库


两个常用的公共仓库


  1. docker hub: https://hub.docker.com/

  2. NGC: https://ngc.nvidia.com/


国外仓库访问比较慢,有时候可能会登录不上,我们这里使用阿里云的仓库


参考资料:https://www.cnblogs.com/jinjian91/p/11349453.html


阿里云docker上手资料:https://help.aliyun.com/document_detail/60743.html?spm=5176.166170.863064.1.6f9d217fG6lE49


sudo docker login --username=<阿里云账号> registry.cn-hangzhou.aliyuncs.com


登录成功状态如下图

clipboard.png


登录的主要目的是像公共仓库push自己的容器镜像,如没有这方面使用需求,可以跳过

docker sudo权限设置


由于docker总是需要sudo权限,每次都要输入sudo和密码比较麻烦,我们可以将docker权限给当前用户:


  1. 添加docker用户组 sudo groupadd docker

clipboard.png


  1. 将docker账户给予权限 sudo gpasswd -a ${USER} docker

clipboard.png


  1. 重启docker服务 sudo service docker restart

  2. 切换当前会话到新group newgrp docker


此时直接使用docker命令应该不需要输入权限了,但是在执行docker images命令时,可能会弹出这样的警告:

clipboard.png


  1. 这是因为对该文件夹没有权限所致,设置读写权限即可 sudo chmod 777 /home/omnisky/.docker -R

docker 加速器设置


这里我使用的是阿里云加速器,需要注册阿里云账号获取私人加速器地址


在 /etc/docker/daemon.json文件中写入加速器地址即可,没有的话手动创建


{"registry-mirrors":["https://reg-mirror.qiniu.com/"]}(这是一个示例

3,docker常用命令

(1)拉取镜像与查看镜像


  1. 将docker镜像从仓库pull到本地


docker pull 镜像名称:tag


例如:docker pull hello-world:latest


  1. 查看当前存在的docker镜像


docker images

clipboard.png


  1. 删除某一个镜像


docker rmi <镜像id>或者<镜像名>

(2)运行docker的相关命令


  1. 基于docker镜像启动一个容器

docker run <参数 参数> <镜像名称:tag>


run命令的常用参数


1) -i: 以交互模式运行容器,通常与 -t 同时使用


2) -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;


例如:docker run -it ubuntu:latest 会进入一个伪终端,作为容器的终端,ctrl+D可以退出


3) -p: 端口映射,格式为:主机(宿主)端口:容器端口


4) --name 为容器指定一个名称;


5) -d: 后台运行容器,并返回容器ID;


例如 docker run -it -p 1234:22 --name test3 -d 镜像名称:tag


上述命令的意思是,以某镜像启动一个容器 开启伪终端 并将本地的1234端口映射到容器22端口,该容器后台启动


此时,可以通过物理机SSH访问该容器


ssh root@localhost -p 1234


需要容器中安装ssh server和开启SSH服务


6) -v 物理机与容器共享文件夹 -v 物理机路径:容器路径


7) --gpus 指定使用物理机的显卡


--gpus all 使用所有GPU


--gpus '"device=1,2"' 指定GPU

(3)其他


docker start -i containerID 启动容器并打开伪终端


docker stop containerID 停止容器


docker rm containerID 删除容器


docker attach containerID 进入后台容器(保证容器的状态是UP)


docker ps -a 查看所有容器


docker cp [YourHostFilePath] [containerID]:[DockerPath] 将宿主机内的指定文件传输至容器内部的指定地址。


docker commit 容器id/容器名字 镜像名称:tag 容器重新发布为镜像

解决 docker ssh 的 远程问题

在容器中安装ssh-server并开启服务


sudo apt-get update


sudo apt-get install openssh-server #安装ssh服务器

service ssh status # 查看ssh服务启动情况

service ssh start # 启动ssh服务


配置SSH


vi /etc/ssh/sshd_config
将PermitRootLogin的值从 withoutPassword 改为yes


service ssh restart # 重启动ssh服务


passwd 给docker 设置密码


本地物理机ssh登录


ssh root@localhost -p 端口


远程物理机登录docker容器


ssh root@ip -p 端口

解决docker UI管理的问题


(1)使用 docker ui


docker pull uifd/ui-for-docker


启动web管理容器


docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker


访问:http://localhost:9000


优点

支持容器管理


  # 支持镜像管理


  # 基于docker api,自身也是一个容器。


  # 稳定性高


  # 可动态显示显示容器之间关系图


  # 容器管理,增加端口映射,增加系统变量、映射目录等


缺点


  # 没有登录验证,因为没有登录体系,目前解决办法是,只开放本地访问,或者通过TLS来对权限进行控制。


  # 无法分配某容器给某用户。


  # 不支持多主机。


  # 不支持集群swarm等


  # 功能少


  # 不支持控制台命令

(2)使用portainer


docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

优点


  # 支持容器管理、镜像管理


  # 轻量级,消耗资源少


  # 基于docker api,安全性高,可指定docker api端口,支持TLS证书认证。


  # 支持权限分配


  # 支持集群

缺点


  # 功能不够强大。


  # 容器创建后,无法通过后台增加端口。

管理员新建容器 参考命令:


docker run -it -p 2134:22 --name lei_meg --gpus all -v /media/omnisky/Data1/lei_meg:/data -d tjcar:v1.0


docker run -it -p 物理机端口:22 --name <名> --gpus all -v 物理机目录:容器目录 -d tjcar:v1.0


求索博客, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明来自求索的个人博客Docker运维知识—管理员篇
喜欢 (1)
求索
关于作者:
路漫漫其修远兮,吾将上下而求索
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址