没完没了更新,从入门到放任

Linux系统历史衍生图:

搜索镜像

从docker官方镜像仓库搜索镜像

docker search [OPTIONS] TERM

OPTIONS:

–automated :只显示自动成立的镜像,默认值为fasle

–filter,-f :突显过滤后的搜索结果

没完没了更新,从入门到放任。–limit :展现的最大搜索结果,默许值为25

–no-trunc : 显示完整的镜像描述,默许值为fasle

–stars :列出收藏数不低于指定值的镜像,默许值为0

搜索ubuntu镜像

[root@docker ~]# docker search ubuntu
NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                                       Ubuntu is a Debian-based Linux operating s...   6198      [OK]       
rastasheep/ubuntu-sshd                       Dockerized SSH service, built on top of of...   90                   [OK]
ubuntu-upstart                               Upstart is an event-based replacement for ...   74        [OK]       
ubuntu-debootstrap                           debootstrap --variant=minbase --components...   30        [OK]       
torusware/speedus-ubuntu                     Always updated official Ubuntu docker imag...   28                   [OK]
nuagebec/ubuntu                              Simple always updated Ubuntu docker images...   22                   [OK]
nickistre/ubuntu-lamp                        LAMP server on Ubuntu                           20                   [OK]
solita/ubuntu-systemd                        Ubuntu + systemd                                8                    [OK]
nimmis/ubuntu                                This is a docker images different LTS vers...   7                    [OK]
darksheer/ubuntu                             Base Ubuntu Image -- Updated hourly             3                    [OK]
vcatechnology/ubuntu                         A Ubuntu image that is updated daily            1                    [OK]
webhippie/ubuntu                             Docker images for ubuntu                        1                    [OK]
jordi/ubuntu                                 Ubuntu Base Image                               1                    [OK]
admiringworm/ubuntu                          Base ubuntu images based on the official u...   1                    [OK]
konstruktoid/ubuntu                          Ubuntu base image                               0                    [OK]
forumi0721ubuntuaarch64/ubuntu-aarch64-dev   ubuntu-aarch64-dev                              0                    [OK]
labengine/ubuntu                             Images base ubuntu                              0                    [OK]
forumi0721ubuntuarmhf/ubuntu-armhf-dev       ubuntu-armhf-dev                                0                    [OK]
forumi0721ubuntux64/ubuntu-x64-dev-armbian   ubuntu-x64-dev-armbian                          0                    [OK]
forumi0721ubuntux64/ubuntu-x64-dev-android   ubuntu-x64-dev-android                          0                    [OK]
teamrock/ubuntu                              TeamRock's Ubuntu image configured with AW...   0                    [OK]
smartentry/ubuntu                            ubuntu with smartentry                          0                    [OK]
datenbetrieb/ubuntu                          custom flavor of the official ubuntu base ...   0                    [OK]
lynxtp/ubuntu                                https://github.com/lynxtp/docker-ubuntu         0                    [OK]
forumi0721ubuntux64/ubuntu-x64-dev           ubuntu-x64-dev                                  0                    [OK]

搜索busybox官方镜像。并且stars数不少于3的镜像

[root@docker ~]# docker search --filter "is-official=true" --filter "stars=3" busybox
NAME      DESCRIPTION           STARS     OFFICIAL   AUTOMATED
busybox   Busybox base image.   1044      [OK]       

目前 Docker 官方维护了一个公共仓库 Docker
Hub,其中已经席卷了数额超越
15,000 的镜像。半数以上急需都得以因此在 Docker Hub
中直接下载镜像来贯彻。

  • 1.到手镜像
  • 2.列出镜像
  • 3.创造镜像
    • 3.1
      修改已有镜像
    • 3.2
      使用Dockerfile创立镜像

      • 创建Dickerfile文件
      • 动用build来创设镜像
      • 使用新创设的镜像来启动容器
  • 4.移除镜像
  • 5.导入和导出
    • 5.1保存镜像到地头
    • 5.2导入本地文件到镜像
  • 6.其他
    • 6.1修改镜像标签
    • 6.2上传镜像

 

镜像下载

从镜像仓库下载镜像,不指定仓库的地址将默许从Docker Hub官方仓库下载镜像

不指定镜像的tag将下载默许latest镜像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

从docker官方镜像仓库下载nginx镜像

[root@docker yum.repos.d]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
e6e142a99202: Pull complete 
8c317a037432: Pull complete 
af2ddac66ed0: Pull complete 
Digest: sha256:72c7191585e9b79cde433c89955547685db00f3a8595a750339549f6acef7702
Status: Downloaded newer image for nginx:latest

从指定的镜像仓库192.168.0.180/pan 下载镜像

[root@docker ~]# docker pull 192.168.0.180/pan/pod
Using default tag: latest
latest: Pulling from pan/pod
5a865e48f2fd: Pull complete 
a778b52f148e: Pull complete 
8d6f83433b16: Pull complete 
Digest: sha256:a542e98ed123fbba93b820b896d5f563f003bf07b59d5943b591a10f16ce1211
Status: Downloaded newer image for 192.168.0.180/pan/pod:latest

Docker Hub

1.获得镜像

docker pull

# 从官方获取ubuntu仓库标记为12.04的镜像
docker pull alpine:3.2

# 从第三方registry.hub.docker.com获取ubuntu仓库标记为12.04的镜像
docker pull registry.hub.docker.com/alpine:3.2

运行docker run -t -i alpine:3.2 /bin/bash开行镜像

亚洲必赢app官方下载,ubuntu镜像:

下载遇到的题材:

只要个人仓库未打开https连接,docker默认使用https连接镜像仓库将招致力不从心下载镜像,编辑文件/etc/docker/daemon.json将民用仓库添加为可相信任仓库,没有该文件可手动制造

vi /etc/docker/daemon.json
{
  "insecure-registries" : ["192.168.0.180"]
}

如果docker版本太低,此措施无用,则编辑/etc/sysconfig/docker文件,添加可相信任仓库

vi  /etc/sysconfig/docker
INSECURE_REGISTRY='--insecure-registry 192.168.0.180'

注册&&登录

你可以在
https://cloud.docker.com
免费注册一个 Docker 账号。

可以由此执行 docker login
命令交互式的输入用户名及密码来形成在命令行界面登录 Docker Hub

您可以因而 docker logout 退出登录。

$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: souyunku
Password: 输入密码
Login Succeeded

2.列出镜像

docker images,其中ID相同则表示同意镜像

Arch镜像:

镜像操作

拉取镜像

您可以由此 docker search 命令来寻觅官方仓库中的镜像,并利用
docker pull 命令来将它下载到本地。

例如以 nginx 为主要词举行查找:

$ docker search nginx
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                                                  Official build of Nginx.                        7636                [OK]                
jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker con…   1214                                    [OK]
richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable of…   490                                     [OK]
jrcs/letsencrypt-nginx-proxy-companion                 LetsEncrypt container to use with nginx as p…   279                                     [OK]
kong                                                   Open-source Microservice & API Management la…   143                 [OK]                
webdevops/php-nginx                                    Nginx with PHP-FPM                              93                                      [OK]
kitematic/hello-world-nginx                            A light-weight nginx container that demonstr…   88                                      

可以看到重返了累累暗含关键字的镜像,其中包罗镜像名字、描述、收藏数(表示该镜像的受关心程度)、是还是不是合法创制、是或不是自动创制。

合法的镜像表明是法定项目组制造和掩护的,automated
资源允许用户验证镜像的来源于和内容。

据悉是还是不是是官方提供,可将镜像资源分为两类。

一种是近乎 centos 那样的镜像,被号称基础镜像或根镜像。那个基础镜像由
Docker
公司开创、验证、帮助、提供。这样的镜像往往使用单个单词作为名字。

还有一系列型,比如 jwilder/nginx-proxy 镜像,它是由 Docker
的用户创造并保险的,往往带有用户名称前缀。可以透过前缀 username/
来指定使用某个用户提供的镜像,比如 jwilder 用户。

其余,在摸索的时候经过 --filter=stars=N 参数可以指定仅突显收藏数据为
N 以上的镜像。

下载官方 nginx 镜像到地头。

$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
e7bb522d92ff: Pull complete 
6edc05228666: Pull complete 
cd866a17e81f: Pull complete 
Digest: sha256:cf8d5726fc897486a4f628d3b93483e3f391a76ea4897de0500ef1f9abcd69a1
Status: Downloaded newer image for nginx:latest
root@souyunku:~/mydocker#

3.创建镜像

CentOS镜像:

翻看本地镜像

[root@docker ~]# docker images 
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
nginx                   latest              c246cd3dd41d        9 days ago          107MB
192.168.0.180/pan/pod   latest              be92a7c78132        6 weeks ago         205MB

推送镜像

俺们先创设一个镜像

3.1 修改已有镜像

  • 行使run启动镜像
  • 修改内部内容
  • exit退出
  • docker commit -m “备注” -a “Jasper Xu sorex@163.com
    jasperxu/alpine:v2
    运行docker run -t -i jasperxu/alpine:v2 /bin/bash开行镜像

Fedora镜像:

导出本地镜像

镜像下载到本地后存放在分层文件系统中,实用docker
save命令可以将其导入到一个普通文书中

[root@docker ~]# docker save -o /root/nginx-img.tar nginx
[root@docker ~]# file /root/nginx-img.tar
/root/nginx-img.tar: POSIX tar archive
[root@docker ~]# ll -h /root/nginx-img.tar
-rw------- 1 root root 107M Jul  2 23:59 /root/nginx-img.tar

先营造一个镜像

创建Dockerfile文件

$ touch Dockerfile

Dockerfile内容如下

FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

生成镜像

$ docker build -t nginx:v1 .
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM nginx
 ---> 3f8a4339aadd
Step 2/2 : RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
 ---> Using cache
 ---> 4ac2d12f10cd
Successfully built 4ac2d12f10cd
Successfully tagged nginx:v1

翻看镜像

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               v1                  4ac2d12f10cd        23 minutes ago      108MB

3.2 使用Dockerfile创造镜像

Debian镜像:

导入本地镜像

将导出的镜像文件导入到本地镜像库

[root@docker ~]# docker load --input nginx-img.tar 
54522c622682: Loading layer [==================================================>]  58.44MB/58.44MB
1c3fae42c500: Loading layer [==================================================>]   52.7MB/52.7MB
87823f21b793: Loading layer [==================================================>]  3.584kB/3.584kB
Loaded image: nginx:latest

推送制作的镜像

用户也得以在报到后经过 docker push 命令来将协调的镜像推送到
Docker Hub。

以下命令中的 souyunku 请替换为你的 Docker 账号用户名。

标志本地镜像,将其归入souyunku仓库

$ docker tag nginx:v1 souyunku/nginx:v1

查看本地镜像

$ docker images souyunku/nginx:v1
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
souyunku/nginx      v1                  4ac2d12f10cd        41 minutes ago      108MB

推送镜像

$ docker push souyunku/nginx:v1
The push refers to repository [docker.io/souyunku/nginx]
241cbe531d78: Pushed 
a103d141fc98: Pushed 
73e2bd445514: Pushed 
2ec5c0a4cb57: Pushed 
v1: digest: sha256:aae4f5b270340907da80b220315a0e82a15a9debc4347023a4d6c7a96b9cee40 size: 1155

创建Dickerfile文件

上边就是一个Dockerfile文件示例

# This is a commit
FROM alpine:3.2
MAINTAINER Jasper Xu <sorex@163.com>

RUN apk update &&      apk add socat &&        rm -r /var/cache/

注:详情见02

 

上传镜像到私有镜像仓库

  1. 登录镜像仓库

[root@docker ~]# docker login 192.168.0.180
Username: admin
Password: 
Login Succeeded
  1. 将镜像打一个新的号子

[root@docker ~]# docker tag c246cd3dd41d 192.168.0.180/pan/test
[root@docker ~]# docker images 
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
192.168.0.180/pan/test   latest              c246cd3dd41d        9 days ago          107MB
nginx                    latest              c246cd3dd41d        9 days ago          107MB
192.168.0.180/pan/pod    latest              be92a7c78132        6 weeks ago         205MB
  1. 上传镜像到192.168.0.180私有镜像仓库

[root@docker ~]# docker push 192.168.0.180/pan/test
The push refers to a repository [192.168.0.180/pan/test]
87823f21b793: Pushed 
1c3fae42c500: Pushed 
54522c622682: Pushed 
latest: digest: sha256:72c7191585e9b79cde433c89955547685db00f3a8595a750339549f6acef7702 size: 948

有关私有镜像仓库的创办前面小说会介绍。

拉取推送的镜像

先把地面镜像删除

$ docker rmi souyunku/nginx:v1
Untagged: souyunku/nginx:v1

$ docker rmi e0b
Untagged: nginx:v1
Deleted: sha256:e0bd56806499c0cec4534fe5a85525e45a4d12d8be188d5d498385b0ac36f33e
Deleted: sha256:67d1bbe70151d306c0014d6e3f5c1734ba74849b8989bab46e11f560ae8ec46d

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              3f8a4339aadd        5 days ago          108MB

拉取自己docker hub的镜像

$ docker pull souyunku/nginx:v1
v1: Pulling from souyunku/nginx
e7bb522d92ff: Already exists 
6edc05228666: Already exists 
cd866a17e81f: Already exists 
9c3032d48351: Pull complete 
Digest: sha256:aae4f5b270340907da80b220315a0e82a15a9debc4347023a4d6c7a96b9cee40
Status: Downloaded newer image for souyunku/nginx:v1

$ docker images souyunku/nginx:v1
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
souyunku/nginx      v1                  4ac2d12f10cd        2 hours ago         108MB

动用build来创设镜像

docker build -t jasperxu/alpine:v3 .

  • -t 仓库名称
    jasperxu/alpine,jasperxu/alpine:v3,帮助八个docker build -t jasperxu/alpine:v3 -t jasperxu/aaa .
  • . Dockerfile文件所在路径(当前目录),若是在上顶级目录可利用./alpine

除去镜像

删去本地镜像库中的镜像

[root@docker ~]# docker rmi nginx
Untagged: nginx:latest
Untagged: nginx@sha256:72c7191585e9b79cde433c89955547685db00f3a8595a750339549f6acef7702
Deleted: sha256:c246cd3dd41d35f9deda43609cdeaa9aaf04d3658f9c5e38aad25c4ea5efee10
Deleted: sha256:faff6e89a68845db6912629dd8b5647545f9198c5e312327a853508f25398c4d
Deleted: sha256:17634c028290a76bf93f15b178f7534cca4a38aede119fa760e319019a7bf9c7
Deleted: sha256:54522c622682789028c72c5ba0b081d42a962b406cbc1eb35f3175c646ebf4dc

借使镜像创立了容器,将无法删除该镜像,删除容器后在剔除该镜像

私家仓库

偶尔使用 Docker Hub
那样的公物仓库可能不便于,用户可以成立一个地面仓库供私人使用。

本节介绍怎样利用当地仓库。

docker-registry
是合法提供的工具,可以用来创设私有的镜像仓库。本文内容据悉
docker-registry v2.x 版本。

使用新创立的镜像来启动容器

docker run -t -i jasperxu/alpine:v3 /bin/bash

设置运行 docker-registry

4.移除镜像

docker rmi xxxxxxxxxxxx
docker rmi jasperxu/alpine
docker rmi jasperxu/alpine:v3

移除镜像前须要移除看重于该镜像的富有容器使用docker rm

容器运行

你可以通过取得官方 registry 镜像来运行。

$ docker run -d -p 5000:5000 --restart=always --name registry registry

Unable to find image 'registry:latest' locally
latest: Pulling from library/registry
ab7e51e37a18: Pull complete 
c8ad8919ce25: Pull complete 
5808405bc62f: Pull complete 
f6000d7b276c: Pull complete 
f792fdcd8ff6: Pull complete 
Digest: sha256:9d295999d330eba2552f9c78c9f59828af5c9a9c15a3fbd1351df03eaad04c6a
Status: Downloaded newer image for registry:latest
10e12c6983d054da8dc85c017b93e64be0ed11858c0d43b6198bdb652a270d9e
root@souyunku:~/mydocker# docker run -d \
>     -p 5000:5000 \
>     -v /opt/data/registry:/var/lib/registry \
>     registry
469f1bbf2a25f6038795014b0d4bce5035c4c937b86f968a0bff8acd28a78720
docker: Error response from daemon: driver failed programming external connectivity on endpoint flamboyant_yalow (734bddc352cd5804aeafe4c940267954a70109eabd557481e3572adc7cc29e9c): Bind for 0.0.0.0:5000 failed: port is already allocated.

那将应用官方的 registry
镜像来启动私有仓库。默许情形下,仓库会被创立在容器的 /var/lib/registry
目录下。你可以经过 -v
参数来将镜像文件存放在当地的指定路线。例如下边的例证将上传的镜像放到本地的
/opt/data/registry 目录。

$ docker run -d \
    -p 5000:5000 \
    -v /opt/data/registry:/var/lib/registry \
    registry

5.导入和导出

村办仓库操作

5.1保存镜像到地点

docker save jasperxu/alpine:v3 > alpine.tar

翻开本地镜像

创办好私有仓库之后,就足以行使 docker tag
来标记一个镜像,然后推送它到仓库。例如私有仓库地址为 127.0.0.1:5000

先在本机查看已有些镜像。

$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              3f8a4339aadd        5 days ago          108MB

5.2导入本地文件到镜像

docker load < alpine.tar

标志本地镜像

使用 docker tagnginx:latest 那个镜像标记为
127.0.0.1:5000/nginx:latest

格式为 docker tag IMAGE[:TAG]
[REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]。

$ docker tag nginx:latest 127.0.0.1:5000/nginx:latest

6.其他

上传标记镜像

使用 docker push 上传标记的镜像,到仓库

$ docker push 127.0.0.1:5000/nginx:latest
The push refers to repository [127.0.0.1:5000/nginx]
a103d141fc98: Pushed 
73e2bd445514: Pushed 
2ec5c0a4cb57: Pushed 
latest: digest: sha256:926b086e1234b6ae9a11589c4cece66b267890d24d1da388c96dd8795b2ffcfb size: 948

$ docker image ls
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
127.0.0.1:5000/nginx   latest              3f8a4339aadd        5 days ago          108MB

用 curl 查看仓库中的镜像。

$ curl 127.0.0.1:5000/v2/_catalog
{"repositories":["nginx"]}

此地可以阅览 {"repositories":["ubuntu"]},评释镜像已经被成功上传了。

6.1修改镜像标签

docker tag xxxxxxxxxxxx jasperxu/alpine:devel

下载仓库镜像

先删除已有镜像,再尝试从个体仓库中下载那几个镜像。

$ docker image rm 127.0.0.1:5000/nginx:latest
Untagged: 127.0.0.1:5000/nginx:latest
Untagged: 127.0.0.1:5000/nginx@sha256:926b086e1234b6ae9a11589c4cece66b267890d24d1da388c96dd8795b2ffcfb

下载镜像

$ docker pull 127.0.0.1:5000/nginx:latest
latest: Pulling from nginx
Digest: sha256:926b086e1234b6ae9a11589c4cece66b267890d24d1da388c96dd8795b2ffcfb
Status: Downloaded newer image for 127.0.0.1:5000/nginx:latest

参照:Docker — 从入门到实践

https://www.gitbook.com/download/pdf/book/yeasy/docker\_practice

6.2上传镜像

docker push jasperxu/alpine

Contact

  • 作者:鹏磊
  • 出处:http://www.ymq.io
  • Email:admin@souyunku.com
  • 版权归作者所有,转发请注解出处

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图