资讯专栏INFORMATION COLUMN

Docker从入门到放弃-初学者困惑

yy13818512006 / 1376人阅读

摘要:进入发现运行镜像的容器有可能也是一个系统。每次使用都会创建一个容器,如果出现已经存在的提示,请使用去移除这个容器。使用可以获取权限容器如何查看准确说如何进入到容器。这个就表示启动容器后启动保证有个进行在运行。

前言

这篇文章采用自问自答的方式记录自己的接触Docker的所想与困惑.

学习方式

菜鸟教程过一遍 -> 实战总结 -> Docker官网查找细节

基础知识

Docker搜索镜像 docker search

Docker查看本地镜像 docker images

运行镜像 docker run 镜像ID

停止镜像 docker stop 镜像ID

重启镜像 docker start 镜像ID

删除容器 docker rm name

删除镜像:需要注意删除镜像和容器的命令不一样。 docker rmi ID ,其中 容器(rm) 和 镜像(rmi)

拖取镜像:docker pull name

提交容器:容器中做了一些安装和更改,可以使用docker commit 进行提交得到一个新的镜像,以后就不需要安装之前安装过的东西

主机拷贝文件到容器,容器拷贝到宿主主机分别是: docker cp [options] 容器ID:源路径 目的路径和docker cp [options] 源路径 容器ID: 目的路径。也可以用挂载 在docker run的时候用 -v命令指定,但是挂载需要和宿主主机关联,有点耦合的感觉

docker save 保存一个或者多个镜像为压缩文件,使用docker load加载

docker logs 可以查看一些密码的生存,比如Jenkins

docker ps 和docker ps -a 前者查看运行的容器,后者查看包括不成功运行的所有容器

docker 和 docker common --help 帮助获取命令更多细节

问题

Docker容器和宿主主机的概念好迷糊

宿主主机就是当前安装了docker的系统,可以是window也可以是liunx. 容器就是镜像运行的一个环境,使用docker
run可以创建这个容器(环境),docker exec -it 容器ID(容器别名 --name)可以进入到这个容器中。进入发现运行镜像的容器有可能也是一个liunx系统。在这个容器中我们可以安装其他工具,比如vim,比如jdk,比如tomcat等,这样安装好以后直接使用docker -commit 变成一个新的镜像,以后直接通过docker run 新镜像就能获得之前安装好的vim jdk等这个新环境。每次使用docker run 都会创建一个容器,如果出现已经存在的提示,请使用docker stop 、docker rm去移除这个容器。

Docker容器如何进入和运行

Docker容器运行其实只要通过 docker run 就可以跑起响应的镜像,并能使用这个镜像,比如jenkins镜像,先通过docker search jenkins 找到仓库列表,然后docker pull拉去官网镜像, 直接docker run
镜像ID就可以启动Jenkins并且通过浏览器访问到这个Jenkins。使用docker run --privileged=true可以获取权限
Docker容器如何查看? 准确说如何进入到Docker容器。 可以使用docker exec 这个命令,在liunx下可能有很多例子(docker exec -it -u root 容器别名 /bin/bash),但是如果是window,那么分为两种模式,一种是Window容器(docker exec -it -u root 容器别名 powershell),一种是liunx 容器(docker exec -it -u root 容器别名 bash),

Docker容器运行时的资源挂载

liunx的挂载是将磁盘分区挂载指定目录,这个目录代表就是这个分区。那么这里资源挂载又是怎么回事呢?在使用docker run命令的时候可以使用-v来指定将宿主主机目录挂载在容器的目录下,这样做的好处是我不需要在容器中安装新的东西,只要将宿主主机已经存在的内容在docker run的时候用-v挂载一下就可以了,在容器下面会创建这个挂载的目录。比如说是宿主主机的jdk路径用-v /usr/jdk:/usr/container/jdk 挂载后在容器下面就会存在jdk路径,那么这个容器的jdk路径在什么时候使用呢? 比如这个容器是Jenkins所在的容器,那么通过Web页配置Jenkins所需的jdk路径指的就是这个容器内的路径,我们不需要在容器里面在安装jdk了
具体挂载写法语法请看这篇文章 这篇文章很全 ,容器指定的挂载路径会自动生成

容器运行的时候如何挂载新路径

在使用docker安装jenkins的时候,将容器运行起来然后在web页面进行大半天的插件下载,进入配置页的时候发现忘记挂载jdk了,这可怎么办? 简单来说可以在容器下自己安装一个jdk,不一样要挂载。 但是如果非得挂载那么只能docker 删掉当前容器在run一次,这样做的结果是你之前在网页配置的jenkins已经不存在了需要从头再来

挂载后需要更改宿主主机中的tomcat版本,从7.9变成8.5,会直接影响容器吗

这个问题求助过别人,也查过资料,貌似只要更改宿主主机就可以了,具体还得等日后实践

容器权限不够

进入容器后通过 ls -l 发现 用户和用户组是root 只有用户才有wrx权限,用户组和其他人没有任何操作权限,我们知道x权限关系到你能不能cd到这个目录,连x都没有该如何是好? 通过 w 和 who命令 或者命令提示符后面的$符可以看到当前用户不是root,可以在docker exec的时候指定 -u root参数来让进入的用户是个root用户提示符#是root

/bin/bash的作用

docker命令是不是就跟个/bin/bash,什么意思? 这是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器就会退出。这个就表示启动容器后启动bash保证有个进行在运行。看懂了吗,反正在下很迷糊

容器没有vim ? 不同使用yum安装?

请点击这里获取方法

window 安装docker

最悲催的是1G内容的云服务里玩不了docker,因此大多数还是在window下安装docker。安装需要注意几点内容,必须是window10企业版或者专业版,如果是win10家庭版的还是去某宝花几块钱买个序列号升级一下(去【开始——设置——更新——激活】点击更改产品密钥,然后把密钥复制粘贴进去)如何查看当前电脑操作系统版本:点击这里,下图是官网使用Hyper-v虚拟机安装,

一路安装下去后出现了下面的错误Hardware assisted virtualization and data execution protection must be enabled in the BIOS. See https://docs.docker.com/docke...。 虚拟化禁用了,进入bios,直接找到configuration(或advanced->CPU configuration)开启Intel Virtualization Technology, 解决好了没遇到其他问题,默认仓库太慢,修改daemon.json里面的内容(everything下个快速搜索)

容器中生成的jar包拷贝到主机window目录中

docker cp myjenkins:/var/jenkins_home/workspace/xxx/target/xxx-0.0.1-SNAPSHOT.jar D:
docker cp --help 显示的第一条命令是从容器拷贝主机,第二条命令是主机拷贝容器

docker run Jenkins容器的时候不指定jenkins_home的挂载路径会如何?

jenkins容器会自动生成/var/jenkins_home路径,这个路径存放第三方工具构建好的一些包war/jar,以后如有需要可以进入这个目录下获取包

proceed &)_(&

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27502.html

相关文章

  • 别耍流氓,什么样的教程才算是合格的教程

    摘要:综上,一个好的教程应该是通俗易懂,由浅入深,全面详尽的展示知识内容,展现出全面的知识轮廓知识体系,以及学习该教程所需要的知识水平,并且给出建议,和学习其它知识的渠道。这才是对读者,对知识负责任的态度。 现在网络发达,网上资料多,查阅方便,所以网上学习的确是一种很好的途径,但是网上的资料很多都呈碎片化的,并且质量良莠不齐,有的还有时效性,错误性等问题。很多原因往往给学习者带来很大的困扰,...

    Blackjun 评论0 收藏0
  • 入门求职,成为数据科学家的终极指南

    摘要:我强烈推荐这本书给初学者,因为本书侧重于统计建模和机器学习的基本概念,并提供详细而直观的解释。关于完善简历,我推荐以下网站和文章怎样的作品集能帮助我们找到第一数据科学或机器学习方面的工作简历是不够的,你还需要作品集的支撑。 showImg(https://segmentfault.com/img/bVblJ0R?w=800&h=533); 作者 | Admond Lee翻译 | Mik...

    yanwei 评论0 收藏0
  • 两年AI研究经验(教训)总结,进来看看吧!

    摘要:摘要本文以过来人的身份将自身年的研究经验做了一下分享,希望本文对于即将开始从事人工智能研究的朋友有所帮助。此外,还有各种会议也值得关注。三大会议分别是以及。此外,当演讲者向现场观众演讲时,他们往往优先考虑的是清晰度而不是简洁性。 摘要: 本文以过来人的身份将自身2年的研究经验做了一下分享,希望本文对于即将开始从事人工智能研究的朋友有所帮助。 人工智能研究这个领域是有一定门槛的。对于初学...

    baihe 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<