docker学习之路

环境 :

ubuntu 16.4



下载docker

首先使用命令行下载 docker

wget -qO- https://get.docker.com/ | sh


启动

下载完成之后进行一个启动,但是会出现错误 提示用户没有权限

ubuntu默认是非root用户,非root用户会提示错误信息所以最简单的办法是使用

sudo su

进入root用户模式执行以下命令

开启docker start

sudo service docker start

重启docker服务

service docker restart

关闭docker服务

versice docker stop


更换镜像源

访问国外镜像源太慢了 只能使用国内源

Docker 官方中国区:https://registry.docker-cn.com
网易:http://hub-mirror.c.163.com
中国科技大学:https://docker.mirrors.ustc.edu.cn
阿里云:https://y0qd3iq.mirror.aliyuncs.com

进入宿主机的文件目录          /etc/docker/daemon.json            这是docker在宿主机上的镜像源配置,

一般情况是没有的 daemon.json 配置文件的,

vim daemon.json   创建一个同名文件 在其中写入

{
  "registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com"]
}

根据情况选择 上述四个源的url地址  我这里是阿里云

退出保存 :wq  重启docker服务

service docker restart 

使用 如下命令查看是否生效

docker info|grep Mirrors -A 1

如果显示出如下信息这说明成功

WARNING: No swap limit support
 Registry Mirrors:
  https://y0qd3iq.mirror.aliyuncs.com/

上述操作博文地址



寻找docke镜像 并下载

docker 官方地址源  https://hub.docker.com/

(比方 例子)比如我需要下载java的依赖  去 docker 仓库寻找java的包 (实验性质  也可以使用其他搜索情况)

docker search java

都是java搜索找到的,但是貌似是图中java停止更新了??? 所以下载openjdk

docker pull openjdk

等待下载

下载完成 查询下载来的镜像

docker images

能看到openjdk 已经下载了

REPOSITORY          是镜像的名字
TAG                 版本号  默认下载是latest 最新的
IMAGE_ID            镜像id
CERATED             时间 不要在意...
SIZE                大小


启动docker 容器

当前没有可以使用的镜像  ,所以使用菜鸟教程中的镜像源   拉去源

docker pull training/webapp 

docker run 启动

docker run -it -p 33333:5000 training/webapp python app.py

// 上述表示
// 使用docker run启动
// -it 启动之后进入命令行输出模式
// -p 33333:5000   将宿主机的33333端口和docker容器的端口5000(5000是菜鸟教程中flask程序,flask的默认端口是5000)  在外部对该程序进行访问时使用设置的宿主机端口
//  training/webapp   镜像
// python app.py  执行flask的程序

在另一台机器中访问宿主机ip加docker -p 33333:5000 设置的3333接口 得到该flask程序输出结果

可以看到 是输出模式  并且持续输出flask程序的响应

但是注意 一旦退出就会停止 exit   这个容器,不会在次运行,外部也不能通过  ip:port   访问

docker ps 

// 可以查看运行中的docker容器

docker ps -a 

// 查看docker 所有的容器  不管停止的还是运行的  能看到上面运行的    

那么需要使用后台模式挂起 退出并不会stop docker中的容器          -d 后台挂起模式

docker run -d -p 12345:5000 training/webapp python app.py

可以通过刚刚使用上述命令产生的容器id  也就是 d9b55.....   进行一些操作

// 比如 查看该容器产生的标准输出
docker logs d9b55
// 容器id是docker随机产生的  不需要全部写出  写出前面几位不和其他容器id重复就好了

这是访问一次之后的结果

如果需要进行一个持续显示输出

docker logs -f d9b     

查看后台挂起容器状态

docker ps

可以多开几个容器 都是同一个镜像  只是宿主机端口不同,访问不同的端口 但都是同一个后台程序

如果每个容器中的镜像程序都是链接同一个数据库,那么可以后续使用nginx 之类的软件负载均衡 不断轮询

将没有挂起后台的容器重新启动

docker ps -a
// 能看到所有运行的和没运行的容器 根据容器id 选择启动

docker start 容器id

菜鸟教程相关url



停止容器

docker stop 容器id

停止全部容器

docker stop $(docker ps -aq)
// docker ps -aq 显示所有容器id


删除容器

需要先停止容器

// 停止运行容器
docker stop 容器id

// 删除
docker rm 容器id  

删除全部容器

// 默认为容器停止了
docker rm $(docker ps -aq)

// 找到所有容器暂停在删除
docker rm $(docker stop $(docker ps -aq))


删除镜像

docker rmi 镜像名称或者id

同样和容器一样 如果运行中的容器是依赖于这个镜像的,那么删除也会出现错误,需要先停止依赖这个镜像的容器

原文地址:https://www.cnblogs.com/zengxm/p/11529879.html

时间: 2024-11-07 11:53:27

docker学习之路的相关文章

Docker   学习之路(一)

Docker  学习之路(一) 一.基础环境 系统版本:CentOS Linux release 7.3.1611 (Core) 内核版本:3.10.0-514.26.2.el7.x86_64(Docker官方要求3.8以上内核版本,所以建议升级至最高内核版本) 二.YUM安装Docker # vim /etc/yum.repos.d/docker.repo 添加如下内容: [dockerrepo] name=Docker Repository baseurl=https://yum.docke

Docker 学习之路

一.前言 Docker是对我来说是项新的技术,这里打算记录下学习Docker的点滴经过,一些知识点在阮一峰前辈的文章中都介绍的很详细了,我在后面所记录的单纯是为了自己的理解与记忆.阮一峰前辈的文章写的很好,我也是看了他的文章入门的. 链接如下: http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html http://www.ruanyifeng.com/blog/2018/02/docker-wordpress-tutorial.ht

Docker学习之路(一)

容器简介 管理程序虚拟化(hypervisor virtualization, HV)是通过中间虚拟运行于物理硬件之上.而容器是直接运行在操作系统内核之上用户空间.因此,容器虚拟化运行也成为“操作系统级虚拟化”,容器技术可以让多个独立的用户空间运行在同一台宿主机上. 容器只能运行与底层宿主机相同或类似的操作系统.例如,可以在 Ubuntu 服务器中运行 RedHat Enterprise Linux,但是不能运行 Windows. 在超大规模的多租户服务不熟.轻量级沙盒以及对安全要求不太高的隔离

docker学习之路 深入容器(三)

1.自动重启容器,如果由于某些错误导致容器停止运行,可以用--restart来决定是否重启 docker run  --restart=always  --name=ubuntu-test -d ubuntu /bin/bash always - 无论容器退出代码是什么 docker都会自动重启该容器 on-failure 只有容器退出代码非0,就会重启,另外还可以设置重启次数 --restart=on-failure:5 2.获取更多容器信息 docker inspect ubuntu-tes

AWS 学习之路(技术专业人员Training and Certification)架构解决方案1

AWS 学习之路--技术专业人员架构解决方案1·(1h) 摘要主题: DevOps和云迁移. 将AWS云架构与传统架构进行比较. 联系用于生成各个解决方案的AWS服务,了解可能的迁移策略和技术含义. 第一部分:基于AWS的DevOps DevOps和传统架构的区别: 传统架构: DevOps模型: 独立环境 两团队协作额(开发运维团队) 线性开发 经常沟通 工程师执行开发和运营 提高效率 流程和完成方式延迟对客户的交付 改进服务质量 端到端模型 也可能会涉及QA和安全团队 开发和基础设施是每个团

Azure云平台学习之路(三)——Cloud Services

1.什么是云服务? 能够部署高度可用的且可无限缩放的应用程序和API.简而言之,就是你写的CMD程序按照一定的框架进行少量修改就能运行在Azure云平台上. 2.Azure云服务有什么特点? (1)专注应用程序而不是硬件,PaaS的一种. (2)支持多种框架和语言. (3)集成了运行状况监视和负载平衡. (4)自动缩放优化成本和性能 3.建立云服务之前,我们需要建立一个云存储,来记录我们的程序的日志信息(当然,这不是必须的) (1)选择左边导航栏的"存储".主面板上显示的是所有已有的存

linux学习之路之LVM

试想一种情况,当初我们在规划磁盘的时候,只给某一个磁盘或分区之划分了30G的容量,但是后来,随着业务的需求,该磁盘或者分区的使用量会越来越大,等到以后再有数据存放时,发现该磁盘或者分区的容量不够用,此时该怎么办了?可以新增一个磁盘,经过格式化,挂载等过程就可以使用这个磁盘了,再将原来磁盘的数据完全的复制过来.等到后来又发现,规划的磁盘又太大了,然后又使用上述方法来减少磁盘的大小.虽然这种方法可行,但是效率低,比较复杂.不应该是我们首选的方法. 当然,我们可以这样做,将多个磁盘或者分区(PV)组合

我的算法学习之路

关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口--况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以我认为本文题目是合理的. 这篇文章讲了什么? 我这些年学习数据结构和算法的总结. 一些不错的算法书籍和教程. 算法的重要性. 初学 第一次接触数据结构是在大二下学期的数据结构课程.然而这门课程并没有让我入门--当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾--反正最后考试划个重点也能过,于是这门整个计算机专业本

一个女大学生的代码学习之路(二)

首先说一下,写这种文章是由于我在四月四日晚上,在手动搭建自己的第一个ssh项目的时候,遇到了一个配置的问题,怎么解决也弄不好,当时是四号晚上九点,我看了一眼表,我就想两个小时之内,我要是能搞定就算行了,但是其实,我搞到三点才OK(凌晨),那时候已经是五号了,转天是一家子去扫墓的时候,结果我居然以这种一个理由没有去,理由是我太累了么?我只是就是搭了一个架子,就是由于我的包太混乱了,导致不兼容,所以tomcat总也不启动,你可能认为好笑,这么简单一个问题怎么就费这多多时间呢,但是作为一个刚接触三框架