关于初学者对于docker的一些。。理解

有错希望指正。。

我的目的:能一键部署需要的服务和功能

现在有了目的。。其实是朋友告诉我这东西可以快速部署环境觉得比我那样一次次搞方便

然后我就是一个0基础的小白新手了。。反正我也是刚刚毕业需要学习这些东西虽然公司只是传统行业用不上。。但是总会跳到我想要的互联网环境的。。

首先,我知道了docker的镜像每次启动都会产生一个容器,就算是同一个镜像启动两次也会产生两个容器。。而且在前一个容器的操作关闭后再次打开这个镜像。。又还原了。。想保存你对容器的修改就要用到docker commit <容器id> <保存成的镜像名>(去尖括号),,,这样你就把已经操作的容器保存成新的镜像了。。然而那两个容器还在。。你可以删掉~旧的镜像没需求也可以删掉。。下次启动新的就有你想要的东西了。。

上面那段直接把完整一个基础流程写出来了。。下面才是真的基础部分。。比如。。pull。。安装启动啥的毫无技术含量自己搞搞就好了。

这个pull我经常看到有人说。。pull不下来。。网速不行老断之类的。。我首先听人说了个这个daoCloud的加速器。。我就去看了一下。。然后当时没注意什么加速器1.0和2.0。。就直接安装上了。。速度是很快。。而且可以直接把你的本地的测试机之类的直接连上他的平台进行一键管理。。看上去很不错。。但是他貌似取代了本来的docker命令。。因为他的pull变成了dao pull。。。本来是docker pull。。而且dao下来的镜像不能用docker run。。当然也有可能是我自己的问题。。反正种种问题没法用下去了。。而且我为了还原回去。。就把docker卸了重装了一次。。

然后我用了阿里云的开发者平台的加速器。。那个好吧貌似没啥用。。毕竟网络环境不是特别好。。最后我又回到了daoCloud。。原来有个加速器1.0。。这次没啥问题了。。也能pull了。。只不过这个镜像还是官方那下到的。。

然后新的问题来了。。一开始只是最普通的docker pull centos这种虽然下了一个很标准的centos。。但是不知道是什么版本里面有什么的镜像。。所以有个命令docker search <想要的镜像名> 这个可以查询想要的镜像比如。。输入centos7.2就可以出来一些名字里带有这个镜像。。你就可以在里面选择一个自己想要的pull了

现在有了镜像了。。就可以查看一下了。。就是docker images。。然后run起来~~就有各种参数了。。我也就知道几个用得上的。。我用得上的。。比如。。-it。。查的说的是什么交互。。然后就是启动以后能直接进入到容器内。。但是只是普通的镜像可以。。因为有些用dockflie创建的镜像是比较特殊的可能进不去。。进去的话exit就退出来了。。但是容器也停止了。。

然后就是--rm这里是两个-这个是退出容器或者容器停止了他就被删除了。。不会保存。。好多人用docker ps看不到容器就觉得没有了。。但是硬盘越来越小。。你需要docker ps -a这个可以看到全部。。你会发现很多停止了的容器其实还在。。因为他们还能再次start。。。没必要的就删掉了。。一些什么删除所有。。或者删除所有停止。。网上都能搜到。。我只想写个流程和一些我遇到的问题。。不想写那些普遍的东西

然后参数完了就是镜像名。。可以写名字可以写id。。我比较喜欢id。。因为有些名字比id还长。尤其是第三方库下的镜像。。最后可以加一些映射。。可以是-p的端口映射。。比如 docker run ql3k24n24kj324n -p 80:8080这个可以把容器内的8080端口映射到宿主机的80端口。。然后外面访问宿主机的80端口就能访问到容器内的8080。。。这个好方便的。。容器里的tomcat都不用配置默认端口了。。再就是目录映射就是把本地的目录映射到容器里。。这个其实就是通用了。。在容器里改这个目录的文件。。宿主机就跟着变。。反过来也一样。。貌似是这样。。我也不是很清楚其实。。毕竟用不上。。这个可以做容器内有数据库的情况使用。。因为就算容器关闭了这个数据也是在的~~

然后如果想进入容器但是exit不关闭容器就要run的时候不要加-it。。用exec命令进入容器。。它exit的时候不会关闭容器只是单纯的退出。。参数大致和run差不多。。。只不过输入的id是容器id不是镜像id。。比如。。docker exec -it 324jk234n2j3k4 。。这个容器id如果不是很多的话。。稍微输入几位tab一下就好了。。

再就是我在pull到一些个人上传的镜像就是我之前说的那种用dockerfile构建的镜像。。这种镜像比较特殊。。比如我之前下到一个带ssh并套了log4j的镜像。。完全没法用普通的run加-it参数进入。。只能用ssh进入。。然后我也不知道怎么。。反正我ssh也进不去。。。还有一个是启动目录报错。。他设置的那个目录可能是在特殊情况下用的吧。。反正我进不去。。我就想用普通的启动目录就是/bin/bash进去发现容器的目录是在他的路径后面加入的这个路径。。后来看了dockerfile说是一个设置的cmd基础值。。再输入的值也只是加在这个上面不会替换掉。。反正种种原因我就觉得还是要自己搞镜像。。然后找个地方存起来。。

然后我就pull了一个普通的centos镜像。。发现。。没有service。。没有systmed。。说是一个bug要7.2以后的才修复。。而且要换启动路径。。这块我一直不是很明白希望大神指点。。

最后我还是换了6.8的。。这个虽然没有service。。但是可以用脚本start。。但是一开始发现。。我yum的软件呢!怎么没了。。!再yum还能下!再yum还能下。。。然后我发现进入镜像的地方是/不是root代表的~。。。不知道这块怎么回事。。直接cd到~再yum这下靠谱了。。有了软件了。。也可以在init.d目录下用start启动软件了。。然后这块也就告一段落了。。

最后就是想找个第三方库存一下。。以后调用这个地址就能直接在服务器下载这个镜像并且run起来。。找了不少。。daoCloud。。阿里云。。还有网易蜂巢。。反正主要是我不是很理解。。所以也不知道怎么搞。。最后有人告诉我是我选错了创建的镜像库的类型。。我选的是dockerflie版的库所以肯定没法把本地镜像上传上去了。。然后我选了本地版。。他就给了一些很细致的上传方法。。我就发现原来docker官方对第三方库的支持非常好的。。只是在docker login命令后面加一些参数然后最后加上第三方库的链接地址就可以了。。。反正其实很方便的。。下载也一样。。

目前我就做到这了。。然后在看看dockerfile了。。这东西我觉得也很重要。。。

然而我也只是学了一些皮毛的东西。。和一些遇到的实际可能都不算问题的问题吧。。。希望指正错误和帮我解决一下我说道的问题。。。

时间: 2024-10-03 11:19:25

关于初学者对于docker的一些。。理解的相关文章

初学者如何学习win32和理解一系列代码

问题描述 初学者如何学习win32和理解一系列代码 在打开vs2008中win32项目建立一个项目后,形成的一系列文件和代码如何理解,请给予具体的说明,或者你知道有讲解这的视频也行,谢谢.

J2EE初学者到精通必须需要理解的问题

j2ee|初学|问题 J2EE体系结构简单介绍 一.J2EE提出的背景 1. 企业级应用框架的需求 在许多企业级应用中,例如数据库连接.邮件服务.事务处理等都是一些通用企业需求模块,这些模块如果每次再开发中都由开发人员来完成的话,将会造成开发周期长和代码可靠性差等问题.于是许多大公司开发了自己的通用模块服务.这些服务性的软件系列同陈为中间件. 2. 为了通用必须要提出规范,不然无法达到通用 在上面的需求基础之上,许多公司都开发了自己的中间件,但其与用户的沟通都各有不同,从而导致用户无法将各个公司

【Docker官方文档】理解Docker

本文讲的是[Docker官方文档]理解Docker,[编者的话]本文来自Docker的官方文档,详细介绍了Docker的体系结构.重要概念.内部工作机理等内容,推荐不了解Docker内部原理的同学阅读. 什么是Docker? Docker是一个用于开发.交付和运行应用的开放平台,Docker设计用来更快的交付你的应用程序.Docker可以将你的应用程序和基础设施层隔离,并且还可以将你的基础设施当作程序一样进行管理.Docker可以帮助你更块地打包你代码.测试以及部署,并且也可以减少从编写代码到部

Moving to Docker(二)搭建一个私有registry服务

本文讲的是Moving to Docker(二)搭建一个私有registry服务,[编者的话]本文是<Moving to Docker>系列的第二篇,这个系列的文章讲述了创业公司如何把基础服务迁移到Docker上,以及迁移过程中的经验教训.本文主要介绍了如何安装.测试和使用私有registry服务,其中也包含了从DigitalOcean选VPS和注册Amazon S3服务. 这是迁移到Docker系列的第二篇,整个系列都是介绍我们公司是如何把基础设施从PaaS迁移到Docker的. 第一篇:介

Docker学习路线图 (持续更新中)

Docker学习路线图 Docker基础 101 学习Docker基本概念 Docker容器 Docker镜像 Dockerfile初步概念 练习 安装Docker Toolbox或Docker Engine Docker Toolbox 阿里云镜像源 Docker Engine 阿里云镜像源 配置本地Docker环境 利用Docker Machine创建本地Docker Environment 配置阿里云Docker镜像加速器 管理容器的生命周期与配置 创建.删除.检查.启动.停止容器 ...

docker 架构 与原理

注个人理解: docker 的镜像是位于最底层,但使用宿主主机的操作系统内核,我们可以看到docker的镜像十分的小,原因是docker镜像只是一些环境的配置,所以十分的小,他是只能读不能写的. docker的 容器 是依赖与镜像的,是在镜像上安装一些自定义软件,是可读可写的. Docker 架构 Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器. Docker 容器通过 Docker 镜像来创建. 容器与镜像的关系类似于面向对象编程中的对象与类

深入分析 Docker 镜像原理

第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角.例如一个ubuntu:14.04的镜像,提供了一个基本的ubuntu:14.04的发行版,当然此 镜像是不包含操作系统Linux内核的. 说到此,可能就需要注意一下,linux内核和ubuntu:14.04Docker镜像的区别了.传统虚拟机安装ubuntu:14.04会包含两部分,第一,某一个L

深入分析Docker镜像原理 (转载)

深入分析Docker镜像原理 (转载) 发表于2015-08-21 13:50| 24023次阅读| 来源CSDN| 6 条评论| 作者孙宏亮 云计算DockerDaoCloud 摘要:8月20日晚上8点30分,CSDN Container微信群邀请到DaoCloud软件工程师孙宏亮,他带来了Docker镜像原理的深度分享,分享内容包含两个部分:1.Docker镜像的基本知识:2.Dockerfile.Docker镜像与Docker容器的关系. 分享简介:Dockerfile重塑新镜像,定义的不

Docker小记

一.Docker 简介 - (转自 枯木笔记) Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 -- Docker Hub Docker 使用客户端-服务器 (C/S) 架构模式.Docker 客户端会与 Docker 守护进程进行通信.Docker 守护进程会处理复杂繁重的任务,例如建立.运行.发布你的 Docker 容器.Docker 客户端和守护进程可以运行在同一个系统上,当然你