无限套娃_docker入门(镜像、容器、仓库)

简介: 无限套娃_docker入门(镜像、容器、仓库)

Docker

基于go语言、遵从Apache协议、操作系统虚拟化、复用本地主机的操作系统(区别于过往的硬件层面实现)

image镜像

梦中梦

镜像可容纳操作系统(系统里面包括Apache和程序),操作系统又可以安装Docker,无限循环套娃…想起盗梦空间的梦中梦

可以通过查看Docker安装的镜像辨别我是在第几层(id、tag)

查看镜像层数

查看image命令

docker image ls

载入镜像层

ok进入镜像

sudo docker run -t -i ubuntu:12.04 /bin/bash

其中image的id很重要,我理解为唯一标识符

我进入的id是ac565b40b68c

跳出镜像

如何处理呢,难道像盗梦中跳楼才能出来吗?

没错,只要我跳的够快,就能跳出镜像…

命令exit,快捷键ctrl+d

exit

添加评论到相应的镜像id

添加评论成功返回id

sudo docker commit -m "我好像做了个梦" ac565b40b68c ouruser/sinatra:v2  

再次进入镜像内的容器(程序)

docker run -t -i

sudo docker run -t -i ouruser/sinatra:v2 /bin/bash

container容器

依赖于镜像环境,是镜像创建运行的实例

容器间相互分离(启动、开始、停止、删除)

类似进程(创建、就绪、运行、阻塞、死亡)

进入容器

查看运行的容器

docker ps

attach命令

进入正在运行的docker的names

docker run -idt ubuntu:12.04

导入导出容器

export导出

先查看运行的容器实例

然后导出对应的容器(使用id)

sudo docker export e379e4c23b8c > yma16.tar

import导入

docker import - repository:tag
cat yma16.tar | docker import - test/ubuntu:v1.0

docker rm删除容器

启动容器

docker run

sudo docker run ubuntu:12.04

docker start可以启动已经终止的容器

守护态运行容器

守护态(Daemonized)

sudo docker run -d 

终止容器

docker stop

通过端口终止

sudo docker stop e470f1cd84fa

reposito仓库

主要存放镜像,服务器管理仓库的具体服务器,一个服务器有多个仓库,一个厂库有多个镜像

Hub

官方的Hub

有多个镜像

无需登录就可以查询镜像并下载

docker search

docker search centos

docker pull

下载镜像

sudo docker pull centos

docker push

注册登录账号后上传镜像

私有仓库

docker-registry工具创建私有的镜像厂库

安装运行docker-regitry

ubuntu:

$ sudo apt-get install -y build-essential python-dev libevent-dev python-pip liblzma-dev
$ sudo pip install docker-registry

Centos:

$ sudo yum install -y python-devel libevent-devel python-pip gcc xz-devel
$ sudo python-pip install docker-registry

clone仓库文件进行安装

$ sudo apt-get install build-essential python-dev libevent-dev python-pip libssl-dev liblzma-dev libffi-dev
$ git clone https://github.com/docker/docker-registry.git
$ cd docker-registry
$ sudo python setup.py install

修改配置文件到本地仓库路径
cp config/config_sample.yml config/config.yml

启动 Web 服务
sudo gunicorn -c contrib/gunicorn.py docker_registry.wsgi:application
docker tag 来标记一个镜像

sudo docker tag id 自定义tag

sudo docker tag 380443e9701e 192.168.100.91:5000/yma16_file

修改成功

docker push 上传标记的镜像
sudo docker push 192.168.100.91:22/yma16_file

curl 查看仓库中的镜像
curl http://192.168.100.91:5000/v1/search

我的web服务没有打开

配置文件

利用Docker 中 Registry 的模板(flavor)

config_sample.yml文件

  • common:基础配置
  • local:存储数据到本地文件系统
  • s3:存储数据到 AWS S3 中
  • dev:使用 local 模板的基本配置
  • test:单元测试使用
  • prod:生产环境配置(基本上跟s3配置类似)
  • gcs:存储数据到 Google 的云存储
  • swift:存储数据到 OpenStack Swift 服务
  • glance:存储数据到 OpenStack Glance 服务,本地文件系统为后备
  • glance-swift:存储数据到 OpenStack Glance 服务,Swift 为后备
  • elliptics:存储数据到 Elliptics key/value 存储

1024, 致敬这世界的程序员,respect!


目录
相关文章
|
3天前
|
应用服务中间件 nginx 开发者
从 Docker Hub 拉取镜像受阻?这些解决方案帮你轻松应对
最近一段时间 Docker 镜像一直是 Pull 不下来的状态,感觉除了挂🪜,想直连 Docker Hub 是几乎不可能的。更糟糕的是,很多原本可靠的国内镜像站,例如一些大厂和高校运营的,也陆续关停了,这对我们这些个人开发者和中小企业来说是挺难受的。之前,通过这些镜像站,我们可以快速、方便地获取所需的 Docker 镜像,现在这条路也不行了。感觉这次动作不小,以后想直接访问 Docker Hub 是不可能了。所以我们得想办法搭建自己的私有镜像仓库。
从 Docker Hub 拉取镜像受阻?这些解决方案帮你轻松应对
|
2天前
|
NoSQL Redis Docker
使用 Docker Compose 接管现有容器的文档
使用 Docker Compose 接管现有容器的文档
14 2
|
4天前
|
Cloud Native 安全 Docker
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
|
2天前
|
存储 关系型数据库 MySQL
解读 MySQL 容器信息:`docker inspect` 字段详解
解读 MySQL 容器信息:`docker inspect` 字段详解
20 1
|
4天前
|
Java Docker 容器
使用 Spring Boot 构建 Docker 镜像并进行多模式部署
使用 Spring Boot 构建 Docker 镜像并进行多模式部署
20 2
|
2天前
|
存储 数据管理 Linux
Linux - 记录问题:docker 迁移 更改镜像默认位置的注意事项
Linux - 记录问题:docker 迁移 更改镜像默认位置的注意事项
16 0
|
3天前
|
网络协议 Linux Docker
宿主机的容器是如何通过docker0通信的?
宿主机的容器是如何通过docker0通信的?
14 0
|
1月前
|
存储 安全 开发者
如何删除 Docker 镜像、容器和卷?
【5月更文挑战第11天】
97 2
如何删除 Docker 镜像、容器和卷?
|
1月前
|
安全 JavaScript Docker
修改docker镜像版本,容器大小缩小10%!
`shigen`,一位专注于Java、Python、Vue和Shell的博主,分享其通过修改Docker镜像版本实现容器瘦身的技巧。将服务从`1.0.0`更新至`1.0.1`,基于Alpine版Docker镜像,容器体积减小至原来的10%。文章展示了问题背景、选择轻量级镜像的原因及步骤,包括Docker镜像版本对比、构建和启动新容器的过程,并证实功能未受影响。`file-server`更新将发布在GitHub上,期待用户试用。一起学习,每天进步!
46 2
修改docker镜像版本,容器大小缩小10%!
|
1月前
|
关系型数据库 MySQL 应用服务中间件
docker镜像、容器数据卷
docker镜像、容器数据卷