??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
Docker容器-镜像使用

转载   IT_luo   2018-11-15   浏览量:14


使用Docker镜像:

镜像是docker三大核心概念中最重要的
获取镜像:
镜像是运行容器的前提,官方的docker hub网站已经提供了数十万个镜像供大家开放下载。
在本地可以是用docker [image] pull 命令直接从docker hub镜像源下载、
简洁的格式为 docker pull NAME:[:TAG],其中NAME是镜像名称,TAG是镜像的标签,默认TAG不写的
话为最新

[email protected]:~$ sudo docker pull centos:7.5.1804
7.5.1804: Pulling from library/centos
7dc0dca2b151: Pull complete 
Digest: sha256:adbf1369c8dbeaa2bf9df0b891394e3ca09b5272a2fb54e0fadc6b14dd93fcad
Status: Downloaded newer image for centos:7.5.1804

不指定TAG标签,默认会是latest的标签,也就是最新的

[email protected]:~$ sudo docker pull centos
Using default tag: latest
latest: Pulling from library/centos
aeb7866da422: Pull complete 
Digest: sha256:67dad89757a55bfdfabec8abd0e22f8c7c12a1856514726470228063ed86593b
Status: Downloaded newer image for centos:latest

查看镜像信息
1、使用images 命令列出镜像
> 使用docker images 或 docker image ls 命令可以列出本地主机上已有镜像的基本信息

[email protected]:~$ sudo docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
python                       3                   3a0b867afa5c        9 days ago          95.1MB
ubuntu                       16.04               00a14f2a1af9        9 days ago          86.6MB
test                         0.1                 15c59e70583f        9 days ago          84.1MB
centos-vim-7.5.1804.tar.gz   latest              a4d3ff01fb03        10 days ago         354MB
nginx                        1.14                ecc98fc2f376        4 weeks ago         109MB
nginx                        latest              dbfc48660aeb        4 weeks ago         109MB
debian                       stretch-slim        4b4471f624dc        4 weeks ago         55.3MB
centos                       7.5.1804            76d6bc25b8a5        5 weeks ago         200MB
centos                       latest              75835a67d134        5 weeks ago         200MB
alpine                       latest              196d12cf6ab1        2 months ago        4.41MB
ubuntu                       latest              cd6d8154f1e1        2 months ago        84.1MB

2、使用tag命令为镜像添加标签
为了方便后续的工作使用已经制作好的镜像,可以为镜像打个专门的标签以示区分这个镜像是用于哪种环境的

[email protected]:~$ sudo docker tag ubuntu:latest ubuntu-nginx:v1

# 使用docker images 可以看到镜像列表多出一个ubuntu-nginx:v1的镜像
[email protected]:~$ sudo docker images 
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
centos                       7.5.1804            76d6bc25b8a5        5 weeks ago         200MB
centos                       latest              75835a67d134        5 weeks ago         200MB
ubuntu-nginx                 v1                  cd6d8154f1e1        2 months ago        84.1MB
ubuntu                       latest              cd6d8154f1e1        2 months ago        84.1MB

3、使用inspect 命令查看详细信息
> 3.1、使用docker [image] inspect 命令可以查看镜像的详细信息,比如:作者、适应架构、每层的数字摘要;

[email protected]:~$ sudo docker image inspect ubuntu:16.04
[
    {
        "Id": "sha256:00a14f2a1af9f9e8a58062fdb484ff60b07ec67c8b4caadc02cd456cd1009859",
        "RepoTags": [
            "ubuntu:16.04"
        ],
        "RepoDigests": [],
        "Parent": "",
        "Comment": "Imported from -",
        "Created": "2018-11-06T04:57:29.713185385Z",
        "Container": "",
        "ContainerConfig": {
            "Hostname": "",
         ....... 
]

> 3.1、上述代码是以json格式显示的,假如只要其中一项内容时,可以使用-f来指定,比如,获取镜像的DockerVersion

[email protected]:~$ sudo docker inspect -f {{.DockerVersion}} ubuntu:16.04
18.06.1-ce

4、查看镜像历史用history命令
> 4.1、既然镜像文件由多个层组成,如何知道各个层的具体内容呢,这时候就可以使用History命令,列出镜像的各层信息

[email protected]:~$ sudo docker history centos:7.5.1804
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
76d6bc25b8a5        5 weeks ago         /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B                  
<missing>           5 weeks ago         /bin/sh -c #(nop) ADD file:8f4b3be0c1427b158…   200MB  

5、查找镜像
> 5.1、用docker search命令可以搜索Docker Hub官方仓库中的镜像。

语法为 docker search [option] keyword 
    命令选项:
        -f, --filter filter:过滤输出内容
        --format string: 格式化输出内容;
        --limit int: 限制输出结果个数,默认为25个;
        --no-trunc: 不截断输出结果

比如说,要搜索nginx的镜像:
[email protected]:~$ sudo docker search --filter=is-official=true nginx
NAME                DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx               Official build of Nginx.                        10194               [OK]                
kong                Open-source Microservice & API Management la…   245                 [OK]                

搜索被收藏数超过8包括tensorflow的镜像:
[email protected]:~$ sudo docker search --filter=stars=8  tensorflow
NAME                          DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
tensorflow/tensorflow         Official docker images for deep learning fra…   1182                                    
jupyter/tensorflow-notebook   Jupyter Notebook Scientific Python Stack w/ …   91                                      
xblaster/tensorflow-jupyter   Dockerized Jupyter with tensorflow              51                                      [OK]
tensorflow/serving            Official images for TensorFlow Serving (http…   25                                      
floydhub/tensorflow           tensorflow                                      15                                      [OK]
bitnami/tensorflow-serving    Bitnami Docker Image for TensorFlow Serving     13                                      [OK]

6、删除和清理镜像
> 6.1、使用标签删除镜像:
> 使用docker rmi或docker image rm命令删除镜像
> 格式docker rmi image [Image ....],其中image可以为标签或id

支持选项包括:
    -f, -force: 强制删除镜像,即使有容器依赖它`
    -no-prune:不要清理未带标签的父镜像`

# 使用docker rmi 删除镜像
[email protected]:~$ sudo docker rmi ubuntu-nginx:v1
Untagged: ubuntu-nginx:v1

# 使用docker image rm 来删除镜像
[email protected]:~$ sudo docker image rm test:0.1
Untagged: test:0.1
Deleted: sha256:15c59e70583fe7f327431857faafe9b6954f0ed9120d040155e997401acb7f7d
Deleted: sha256:532dc9a946da8489d6cc68b154ed5854da011698d90ed30787eac04b7de0557b

> 6.2、使用镜像ID来删除镜像,这里要注意一点,如果要删的镜像正在被容器使用的话是删不掉的,要先把容器干掉之后才能删镜像,也可以使用强制删除那就需要加上-f,不过不建议使用。

[email protected]:~$ sudo docker image rm dbfc48660aeb
Untagged: nginx:latest
Untagged: [email protected]:b73f527d86e3461fd652f62cf47e7b375196063bbbd503e853af5be16597cb2e
Deleted: sha256:dbfc48660aeb7ef0ebd74b4a7e0822520aba5416556ee43acb9a6350372e516f
Deleted: sha256:1a34717cf175feab802f74f0edd1c41a811165f6e6af5cddf9b33f9211acde10
Deleted: sha256:df31c4d2dc314417ca1507e7e6ac4e732683a67b5aec725ede170ea7c2ecc99e

> 6.3、清理时间久而未使用的镜像文件,可以使用docker image prune 进行清理;

    选项:
        -a, -all 删除所有无用镜像,不光是是临时镜像
        -filter filter;只清理符合给定过滤器的镜像;
        -f, -force: 强制删除镜像,不需要进行提示确应

# 清理一些时间久远的遗留镜像文件层,不过这里是新环境也不存在遗留问题。
[email protected]:~$ sudo docker image prune -f
Total reclaimed space: 0B

7、创建镜像
> 7.1、创建镜像的方法主要有三种;基于已有镜像的容器创建、基于本地模版导入、基于Dockerfile创建。
> 7.1.1、基于已有容器创建、
> 查看已有的镜像,然后用centos这个镜像来创建属于自己的镜像;

[[email protected] ~]#docker images 
        REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
        httpd               2.4.37-alpine       45c9b7b78130        2 weeks ago         91.8MB
        mysql               5.7                 702fb0b7837f        2 weeks ago         372MB
        centos              7.5.1804            76d6bc25b8a5        5 weeks ago         200MB

> 7.1.2、首先,启动一个centos的基础镜像

[[email protected] ~]#docker run --name test1 -it centos:7.5.1804 /bin/bash

> 7.1.3、制作一个新的镜像文件。

[[email protected] ~]#docker commit -m "yum net-tools" test1 centos-net-toos:v1
sha256:e81a7f5593c755a11f2bfe1bd1a5ddfe12547b68a67edc4e1c8a2182420ca0f4

> 7.1.4、查看image列表,会有个新镜像在里面,也就是刚刚制作好的镜像文件

[[email protected] ~]#docker images 
        REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
        centos-net-toos     v1                  e81a7f5593c7        33 seconds ago      299MB
        httpd               2.4.37-alpine       45c9b7b78130        2 weeks ago         91.8MB
        mysql               5.7                 702fb0b7837f        2 weeks ago         372MB
        centos              7.5.1804            76d6bc25b8a5        5 weeks ago         200MB

7.2、基于本地模版导入:
也可以直接从一个操作系统模版文件导入一个成一个新镜像文件

[email protected]:~$ ls
        centos-7.5.1804-base.tar.gz  Desktop    Downloads         Music     Public     ubuntu-18.04.tar.gz
        centos-vim-7.5.1804.tar.gz   Documents  examples.desktop  Pictures  Templates  Videos
        [email protected]:~$ 
        [email protected]:~$ sudo cat ubuntu-18.04.tar.gz | sudo docker import - ubuntu:16.04 
        sha256:00a14f2a1af9f9e8a58062fdb484ff60b07ec67c8b4caadc02cd456cd1009859

7.3、基于dockerfile创建
> 7.3.1、创建Dockerfile文件

        [email protected]:~$ sudo vim Dockerfile 
        FROM debian:stretch-slim
        LABEL maintainer="cobbler <[email protected]>"  version="1.0"
        RUN apt-get update && \
            apt-get install -y python3 && \
            apt-get clean  && \
            rm -rf /var/lib/apt/lists/*

> 7.3.2、使用build命令创建新镜像文件;

[email protected]:~$ sudo docker image build -t python:3 .

8、导出和导入镜像:
> 8.1、导出已制作好的镜像
> 导出来之后就可以部署到别的docker容器里面

[email protected]:~/images$ sudo docker save -o nginx-1.14.tar.gz nginx:1.14
[email protected]:~/images$ ls
nginx-1.14.tar.gz

> 8.2、导入已制作好的镜像文件:
> 8.2.1、先把刚导出的镜像文件复制到另外一台新部署好的docker容器里面去

[email protected]:~/images$ sudo scp nginx-1.14.tar.gz [email protected]:/root
[email protected]'s password: 
nginx-1.14.tar.gz                                       100%  107MB  53.7MB/s   00:02 

> 8.2.2、在新docker主机里面导入刚传过来的镜像文件

[[email protected] ~]#docker load -i nginx-1.14.tar.gz 
f4a5f8f59caa: Loading layer   54.2MB/54.2MB
19c605f267f4: Loading layer  3.584kB/3.584kB
Loaded image: nginx:1.14

>8.2.3、查看镜像列表:

[[email protected] ~]#docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos-net-toos     v1                  e81a7f5593c7        4 hours ago         299MB
httpd               2.4.37-alpine       45c9b7b78130        2 weeks ago         91.8MB
mysql               5.7                 702fb0b7837f        2 weeks ago         372MB
nginx               1.14                ecc98fc2f376        4 weeks ago         109MB
centos              7.5.1804            76d6bc25b8a5        5 weeks ago         200MB

别忘了点赞噢?。。。。?!

转载自://blog.51cto.com/dklwj/2317594

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024


上一篇:
下一篇:

【下】安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS
1.??HTTPS1.1.什么是HTTPSHTTPS(HypertextTransferProtocolSecure)即安全的HTTP。HTTPS的安全基础是安全套接层(SecureSocketsLayer,SSL)。HTTP工作在应用层(OSI模型的最高层),SSL协议工作在一个较低的子层,位于TCP/IP协议和HTTP协议之间。在HTTP报文传输前对其加密,并在到达时对其解密
【上】安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS
一,对称加密所谓对称加密,就是它们在编码时使用的密钥e和解码时一样d(e=d),我们就将其统称为密钥k。?对称加解密的过程如下:发送端和接收端首先要共享相同的密钥k(即通信前双方都需要知道对应的密钥)才能进行通信。发送端用共享密钥k对明文p进行加密,得到密文c,并将得到的密文发送给接收端,接收端收到密文后,并用其相同的共享密钥k对密文进行解密,得出明文p。?一般加密和解密的
Centos7.3中安装MySQL5.7
首先安装相关环境包yum-yinstall\ncurses\ncurses-devel\bison\cmake\gccgcc-c++添加MySQL程序用户useradd-s/sbin/nologinmysql解压软件包tarzxvfmysql-5.7.17.tar.gz-C/opt/tarzxvfboost_1_59_0.tar.gz-C/usr/local/解压c++运行库cd/usr/loca
Centos7中MySQL5.7服务群集(实现主从复制、读写分离功能)
在MySQL数据库中,在存储数据过程中,我们需要为不同数据类型以及表类型引用不同的存储引擎,比如MyISAM和InnoDB存储引擎。而这些存储引擎提供的读写机制会使得行或者表锁定,当用户访问调取数据时
racadm环境之服务器BIOS设置(三)
此篇文章主要针对于DELL服务器racadm环境的BIOS配置,以F1/F2Error提示和硬盘启动顺序更改为例。racadm基础用法可以参考前面文章。#!/bin/bash#SlyChen#date:2016-09-14IDRAC_IP=$1USER='root'PASSWD='calvin'#racadm通用语法定义成变量COMMAND="racadm-r${IDRAC_IP}-u$USER-
6.13 3.7-3.9
3.7su命令?su命令用于切换用户[[email protected]~]#whoami查看当前用户root[[email protected]~]#su-hyc2[[email protected]~]$id查看当前用户uid=1006(hyc2)gid=1001(hyc1)组=1001(hyc1)环境=unconfined_u:unconfined_r:unconfine
Linux/AIX/HP-UNIX监控磁盘脚本
Linux/AIX/HP-UNIX监控磁盘脚本
6.12 3.4-3.6
3.4usermod命令&nbsp;修改用户的uid[[email protected]~]#usermod-u1014hyc5[[email protected]~]#tail-6/etc/passwdhyc:x:1000:1000::/home/hyc:/bin/bashhyc1:x:1001:1001::/home/hyc1:/bin/bashhyc2:x:1006:1001::/h
案例:python实现代码文件备份机
管理目录与文件只想要我要的文件格式#遍历importrere_filename=re.compile('(.*pdf$)|(.*docx$)|(.*xlsx$)')forroot,dir,filesinos.walk('.'):#遍历当前路径、目录、文件,接着下级路径、目录、文件print(root,dir,files).['目录1','目录2']['3.1-管理目录与文件w.pdf','3.2-
Nginx防盗链、访问控制、解析php相关配置、Nginx代理
Nginx防盗链编辑虚拟主机配置文件vim/usr/local/nginx/conf/vhost/test.com.conf在配置文件中添加如下的内容location~*^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)${expires7d;valid_referersnoneblockedserver_names*.te