Docker安装与镜像管理(一)

一、安装docker

yum install epel-resase

yum install docker-io  (RHEL6)

yum install docker (RHEL7)

系统:

[[email protected] ~]# uname -a

Linux kvm.huangming.org 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

[[email protected] ~]# cat /etc/issue

CentOS release 6.7 (Final)

Kernel \r on an \m

二、启动docker

[[email protected] ~]# /etc/init.d/docker start
Starting docker:	                                   [  OK  ]
[[email protected] ~]# ps -ef |grep docker
root       3900      1  1 19:28 pts/0    00:00:00 /usr/bin/docker -d
root       3927   3900 34 19:28 pts/0    00:00:04 mkfs.ext4 -E nodiscard,lazy_itable_init=0 /dev/mapper/docker-8:3-1573967-base
root       3938   3606  0 19:28 pts/0    00:00:00 grep docker

三、镜像管理

  • docker pull centos

    #从docker.com获取centos镜像

  • docker images

    #查看本地镜像

  • docker tag centos test-img

    #为centos镜像设置标签为test-img,在使用docker image查看时会多出一行,更改的image id和centos的一样

  • docker search [image-name]

    #搜索docker仓库里的docker镜像

  • docker run -t -i centos /bin/bash

    #用下载到的镜像开启容器,-i表示让容器的标准输入打开,-t表示分配一个伪终端,要把-i -t放到镜像名字的前面。当镜像发生修改后,我们可以把该镜像提交重新生成一个新版本运行在本地

  • docker ps

    #查看运行的容器,加-a选项可以查看没有运行的容器

  • docker rmi centos

    #用来删除指定的镜像,其中后面的参数可以是tag,如果是tag时,实际上是删除该tag,只要该镜像还有其他的tag,就不会删除该镜像。当后面的参数为ID时,则会彻底删除整个镜像,连同所有的标签。

1、下载centos镜像

[[email protected] ~]# docker pull centos
latest: Pulling from centos

47d44cb6f252: Already exists 
6fdebd7b0eb5: Already exists 
a63aae4d216f: Already exists 
Digest: sha256:381f21e4c7b3724c6f420b2bcfa6e13e47ed155192869a2a04fa10f944c78476
Status: Image is up to date for centos:latest

2、查看下载到本地镜像

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              latest              bb3d629a7cbc        3 weeks ago         196.6 MB

3、查看docker仓库镜像

[[email protected] ~]# docker search centos
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                          The official build of CentOS.                   2069      [OK]       
jdeathe/centos-ssh              CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8...   18                   [OK]
jdeathe/centos-ssh-apache-php   CentOS-6 6.7 x86_64 / Apache / PHP / PHP M...   14                   [OK]
million12/centos-supervisor     Base CentOS-7 with supervisord launcher, h...   10                   [OK]
blalor/centos                   Bare-bones base CentOS 6.5 image                8                    [OK]
nimmis/java-centos              This is docker images of CentOS 7 with dif...   8                    [OK]
torusware/speedus-centos        Always updated official CentOS docker imag...   7                    [OK]
centos/mariadb55-centos7                                                        3                    [OK]
nathonfowlie/centos-jre         Latest CentOS image with the JRE pre-insta...   3                    [OK]
nickistre/centos-lamp           LAMP on centos setup                            3                    [OK]
consol/sakuli-centos-xfce       Sakuli end-2-end testing and monitoring co...   2                    [OK]
softvisio/centos                Centos                                          1                    [OK]
layerworx/centos                CentOS container with etcd, etcdctl, confd...   1                    [OK]
yajo/centos-epel                CentOS with EPEL and fully updated              1                    [OK]
lighthopper/orientdb-centos     A Dockerfile for creating an OrientDB imag...   1                    [OK]
darksheer/centos                Base Centos Image -- Updated hourly             1                    [OK]
timhughes/centos                Centos with systemd installed and running       1                    [OK]
januswel/centos                 yum update-ed CentOS image                      0                    [OK]
drokar/centos-s6                centOS combined with s6, a small process s...   0                    [OK]
lighthopper/openjdk-centos      A Dockerfile for creating an OpenJDK image...   0                    [OK]
ustclug/centos                   USTC centos                                    0                    [OK]
blacklabelops/centos            CentOS Base Image! Built and Updates Daily!     0                    [OK]
grayzone/centos                 auto build for centos.                          0                    [OK]
jsmigel/centos-epel             Docker base image of CentOS w/ EPEL installed   0                    [OK]
grossws/centos                  CentOS 6 and 7 base images with gosu and l...   0                    [OK]

4、开启一个容器docker run -it centos /bin/bash

[[email protected] ~]# docker run -it centos /bin/bash
[[email protected] /]#
[[email protected] /]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[[email protected] /]# uname -a                
Linux 8c1fd812d079 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

[[email protected] /]# w
 11:55:12 up 42 min,  0 users,  load average: 0.00, 0.03, 0.01
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
[[email protected] /]# ps
   PID TTY          TIME CMD
     1 ?        00:00:00 bash
    16 ?        00:00:00 ps
[[email protected] /]# uptime
 11:55:21 up 42 min,  0 users,  load average: 0.00, 0.02, 0.01
[[email protected] /]# df -Th
Filesystem                                                                                      Type   Size  Used Avail Use% Mounted on
/dev/mapper/docker-8:3-1573967-8c1fd812d0790d1868bcec389a50c6f7a08c6c099167141393af0961e7b850be ext4   9.8G  230M  9.0G   3% /
tmpfs                                                                                           tmpfs  1.9G     0  1.9G   0% /dev
shm                                                                                             tmpfs   64M     0   64M   0% /dev/shm
/dev/sda3                                                                                       ext4    43G  4.6G   36G  12% /etc/hosts
[[email protected] /]# exit
[[email protected] ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
f732106147eb        centos              "/bin/bash"         17 seconds ago      Up 15 seconds                                       high_heisenberg     
8c1fd812d079        centos              "/bin/bash"         3 minutes ago       Exited (0) About a minute ago                       grave_mcclintock

5、修改镜像名称

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              latest              bb3d629a7cbc        3 weeks ago         196.6 MB
[[email protected] ~]# docker tag centos test-img
[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              latest              bb3d629a7cbc        3 weeks ago         196.6 MB
test-img            latest              bb3d629a7cbc        3 weeks ago         196.6 MB
[[email protected] ~]# docker tag test-img centos:test-img2
[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
test-img            latest              bb3d629a7cbc        3 weeks ago         196.6 MB
centos              latest              bb3d629a7cbc        3 weeks ago         196.6 MB
centos              test-img2           bb3d629a7cbc        3 weeks ago         196.6 MB

6、删除镜像

[[email protected] ~]# docker rmi centos:test-img2
Untagged: centos:test-img2
[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              latest              bb3d629a7cbc        3 weeks ago         196.6 MB
test-img            latest              bb3d629a7cbc        3 weeks ago         196.6 MB

四、docker镜像使用容器生成新的镜像

1、启动镜像

[[email protected] ~]# docker start 8c1fd
8c1fd
[[email protected] ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
f732106147eb        centos              "/bin/bash"         12 minutes ago      Exited (0) 43 seconds ago                       high_heisenberg     
8c1fd812d079        centos              "/bin/bash"         15 minutes ago      Up 3 seconds

2、进入已启动的容器docker exec -it 【镜像ID,可以简写】 /bin/bash

[[email protected] ~]# docker exec -it 8c1fd /bin/bash
[[email protected] /]#

3、在容器中安装软件(安装网卡包net-tools)

[[email protected] /]# yum install net-tools wget -y

[[email protected] /]# ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.3  netmask 255.255.0.0  broadcast 0.0.0.0
        inet6 fe80::42:acff:fe11:3  prefixlen 64  scopeid 0x20<link>
        ether 02:42:ac:11:00:03  txqueuelen 0  (Ethernet)
        RX packets 5419  bytes 10411538 (9.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4127  bytes 268377 (262.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

4、生成新的镜像

  • docker commit -m "change somth" -a "somebody info" container_id new-image

例如:docker commit -m "install httpd" -a "test-image1" 8c1fd812d079 test/centos

[[email protected] ~]# docker commit -m "centos_with_nettools_and_wget" -a "author" 8c1fd812d079 centos_new1
3e4be15719e03e909f39a7c03f3c7cd4fa6f2a8e282b2b88204d0224104b20e6
[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos_new1         latest              3e4be15719e0        16 seconds ago      268 MB
centos              latest              bb3d629a7cbc        3 weeks ago         196.6 MB
test-img            latest              bb3d629a7cbc        3 weeks ago         196.6 MB

五、docker基于本地模版导入创建镜像

1、下载地址https://download.openvz.org/template/precreated/

2、下载一个镜像模版

  • 导入镜像

#cat centos-6-x86_64-minimal.tar.gz | docker import - centos-6-x86_64

  • 导出镜像

#docker save -o new-centos.tar new-image/centos

  • 恢复本地镜像

#docker load --input new-centos.tar 或者 docker load < new-centos.tar

  • 上传镜像到dockerhub官网,前提需要注册一个用户

#docker push image-name

时间: 2024-10-26 02:15:15

Docker安装与镜像管理(一)的相关文章

Docker安装及镜像管理

1.docker简介 容器虚拟化,比传统虚拟化轻量 2013年出现,发展非常迅猛 Redhat在6.5版本开始支持docker 使用GO语言开发,基于apache2.0协议 开源软件,项目代码在github维护 2.容器虚拟化和传统虚拟化比较 3.Docker的优势 启动非常快,秒级实现 资源利用率很高,一台机器可以跑上千个docker容器 更快的交付和部署,一次创建和配置后,可以在任意 地方运行 内核级别的虚拟化,不需要额外的hypevisor支持,会有更高的性能和效率 易迁移,平台依赖性不强

Ubuntu下用docker安装redis镜像和使用redis容器分享

Ubuntu下用docker安装redis镜像和使用redis容器分享 1. 安装Ubuntu 2. 用Putty登录Ubuntu Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-40-generic x86_64) * Documentation:  https://help.ubuntu.com/ System information as of Wed Dec 31 06:41:16 UTC 2014 System load:  0.01  

Docker的安装及镜像管理

1. 安装Docker Docker开源的容器引擎,可以让开发者打包应用以及依赖的库,然后发布到任何流行的linux发行版上,移植很方便: 由go语言编写,基于apache2.0协议发布: 基于linux kernel,要想在win下运行需要借助一个vm(虚拟机)来实现: 自2013年开始,近些年发展迅猛: docker从1.13x开始,版本分为社区版ce和企业版ee,并且基于年月的时间线形式: 优点: 启动非常快,秒级实现 资源利用率高,一台高配置服务器可以跑上千个docker容器 更快的交付

docker入门之镜像管理基础

docker镜像管理基础 首发:arppinging 一.镜像概述 1.1 联合挂载 在之前的文章我们提到过,容器是基于镜像启动的,镜像的存储驱动是overlay2 overlayFS将单个Linux主机上的两个目录合成一个目录,这些目录称为层,统一过程被称为联合挂载. 下图是一个docker镜像和docke容器的分层图,docker镜像是lowdir,docker容器是upperdir.而统一的视图层是merged层.如果一个镜像有多层的话,那么它的启动过程需要进行联合挂载,如下图,cento

docker安装postgres镜像&amp;&amp;如何通过Dockerfile使之在运行镜像时初始化数据

前言 本文分为两部分,前半部分简单,后面的部分,其实也不难,但是由于知识点资料比较偏僻,所以这里做一个总结. 在docker中安装postgres镜像 搜索镜像 拉取镜像 查看镜像 在docker镜像启动的时候初始化数据 原文地址:https://www.cnblogs.com/hzhiping/p/10274606.html

Docker安装Tomcat镜像并部署web项目

一.安装Tomcat 1.查找Docker Hub上的tomcat镜像 docker search tomcat 2.拉取官方的镜像 docker pull tomcat 等待下载完毕,需要一些时间. 3.查看docker所有的镜像 docker images 4.启动tomcat镜像 注:前者是外围访问端口:后者是容器内部端口 docker run -d -p 8080:8080 tomcat 注:前者是外围访问端口:后者是容器内部端口 如下命令可后台启动tomcat -d: 后台运行容器,并

Docker容器之镜像管理、端口映射、容器互联

docker镜像的分层 ?Dockerfile 中的每个指令都会创建一个新的镜像层:?镜像层将会被缓存和复用:?当 Dockerfile 的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效:?某一层的镜像缓存失效之后,它之后的镜像层缓存都会失效:?镜像层是不变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然包含该文件 docker镜像 是应用发布的标准格式可支撑一个docker容器的运行 docker镜像的创建方法 基于已有镜像创建基于本地

Docker容器之镜像管理,端口映射,容器互联

docker镜像的分层 Dockerfile 中的每个指令都会创建一个新的镜像层: 镜像层将会被缓存和复用: 当 Dockerfile 的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效: 某一层的镜像缓存失效之后,它之后的镜像层缓存都会失效: 镜像层是不变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然包含该文件 docker镜像 是应用发布的标准格式 可支撑一个docker容器的运行 docker镜像的创建方法 基于已有镜像创建 基于本

Docker学习04_镜像管理

运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载. 可以在浏览器中访问 https://hub.docker.com/search?q=&type=image 来搜索和查看官方镜像仓库. 使用 docker images 列出本地镜像: 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如果不指定一个镜像的版本标签,docker 将默认使用 最新版本即”仓库源名称:latest” 镜像. 执行