docker离线安装包下载 安装在哪个目录下

docker(13)
1.更新 yum 源
# yum -y install epel-release
# yum -y install docker-io
# yum -y install docker
2.升级系统内核
yum -y update
3.启动 docker&
# /etc/init.d/docker start
基本操作:
一、镜像管理
& &&1.搜索 docker 仓库 的镜像
& &&# docker search (image-name)&比如: docker search centos
& &&2.搜索本地 docker 镜像
& &&# docker images
& &&3.从 docker 仓库下载 镜像
& &&# docker pull (image-name)&比如: docker pull centos
& & 4.删除镜像
& & # docker rmi tag-name( image-name ) &(删除标记,或者删除整个容器及其标记)
& & 5.创建新镜像
& & # docker commit -m &message& -a &auther& image_id +新镜像名 &比如:#&docker commit -m &install httpd& -a &Snow& 2c74d574293f httpd/centos (在 httpd/centos
中安装了 httpd 服务)
& & 6.导出镜像,进行该镜像的备份
& & # docker save -o httpd-centos.tar httpd/centos
& & 7.导入镜像,覆盖已经存在的该镜像
& & # docker load --input httpd-centos. # docker load & httpd-centos.tar
& & 8.上传到 dockerhub 仓库
& & # docker push image_name 需要 dockerhub 账号 比如: docker push httpd/centos
二、容器管理
1.开启容器
& & 1)、# docker run -t -i centos /bin/bash (exit 或者 ctl +d 之后退出,并且容器停止 -i:打开容器的 STDIN,-t:为容器分配一个伪tty终端)
& & 2)、# docker run -d centos /bin/bash -c &while :; do echo &123&;sleep 1; done& &(在后台运行)
& & 3)、# docker create -it centos &; & # docker start centos & (start ,stop, restart)
& &&如何进入后台容器:
& &&# docker attach container_id (进入后台运行的容器)
& &&# docker exec -it container_id /bin/bash (临时打开一个后台容器会话,退出后,容器还在运行)
& &&查看后台运行的容器的日志
& &&# docker logs container_id
2.查看 docker 容器
# docker ps (-a)
3.对 docker 容器打标记
# docker tag centos aming1( 打完标记之后 docker images 可以查看到标记的 images )
4.删除容器
# docker rm container_id &(在运行中的 docker container 不能被删除)
5.导出容器,备份一个容器
# docker export containner_id & container.tar&
6.导入容器会生成一个新的镜像 (使用 docker images 查看)
# cat container.tar | docker import - centos_test &导入并重命名镜像
7.一次性启动一个容器,结束删除
docker run -it --rm centos bash
三、仓库管理
1.下载 registry 镜像
# docker pull registry
2.运行 registry 容器
# mkdir /registry
# docker run -d -p
-v /registry:/tmp/registry --name=docker_registry registry
3.修改 docker 配置文件,默认使用 http 访问
# vim /etc/init.d/docker
修改&$exec -d $other_args 为&$exec
-d --insecure-registry 192.168.32.103:5000 $other_args
4.重启 docker 并启动 registry 容器
# service docker restart
# docker start registry_container_id
5.上传 镜像文件到 本地 docker 仓库
# docker tag centos( docker images 获取到 ) 192.168.32.103:5000/centos &(此处应该为 docker commit 来生成一个新的镜像,而不是 tag )
# docker push&192.168.32.103:5000/centos
6.查看本地 docker 仓库中的镜像文件
7.下载本地 docker 仓库的镜像文件
# docker pull&192.168.32.103:5000/centos
四、数据管理
1.创建一个容器
# docker run -tid -v /data:/data centos --name datavol /bin/bash
-v :用来指定挂载目录,:前面的/data/为本地目录,:后面的/data/为容器里的目录
--name :&自定义容器name,这个名字可以使用命令
docker ps&&看最右侧一列
2.创建容器的同时挂载数据卷
# docker run -itd --volumes-from ( 其他容器的name) centos /bin/bash 此处centos 为你要创建的新的容器,而此容器的数据是从 名为name的容器 中获取的
3.自定义数据卷容器
# docker run -itd -v /data --name testvol centos /bin/bash &(创建 centos 镜像的容器,其容器名为 testvol,并且该容器的数据放在 /data 下)
# docker run -itd --volumes-from testvol centos /bin/bash &(创建一个 centos 镜像的不命名的容器,并且该容器的数据卷来自 testvol 的容器)
4.数据卷的备份
上面已经建立了一个数据卷的容器,现在进行数据卷容器的备份
# mkdir /volume-backup &(创建&/volume-backup 来存放 数据卷的备份文件)
# docker run -itd --volumes-from testvol -v /volume-backup:/backup&centos tar cvf /backup/data.tar /data &(此容器创建后并没有running ,需要 docker ps -a 查看)
首先备份 数据卷 需要通过打开一个容器来备份,然后指定它 的数据卷来源为 testvol ,并将 本地的 /volume-backup 目录作为备份文件的挂载点,而容器的 /data 目录又是用来存放数据卷的数据的,所以对 容器中 的/data 目录进行打包放到 /backup 下,其实就是将 testvol 数据卷的数据备份到本地的 /volume-backup 下
5.数据卷的恢复
数据卷的恢复其实就是将本地备份的数据 挂载到 新的容器中的 /data 目录下,首先要新创建一个数据卷容器
# docker run -itd -v /data --name testvol2 centos /bin/bash
然后进行挂载并解压
# docker run -itd --volumes-from testvol2 -v /volume-backup:/backup centos tar xvf /backup/data.tar
五、网络管理
四种网络模式:
1)、host 模式:使用docker run时使用--net=host指定 docker使用的网络实际上和宿主机一样,在容器内看到的网卡ip是宿主机上的ip
2)、container 模式:使用--net=container:container_id/container_name 多个容器使用共同的网络,看到的ip是一样的
3)、none 模式:使用--net=none指定 这种模式下,不会配置任何网络
4)、bridge 模式:使用--net=bridge指定 默认模式,不用指定默认就是这种网络模式。这种模式会为每个容器分配一个独立的Network Namespace。类似于vmware的nat网络模式。同一个宿主机上的所有容器会在同一个网段下,相互之间是可以通信的
外部网络访问容器:
创建一个 安装好 httpd 服务的容器
# docker run -itd -p 5123:80 centos-httpd bash
# docker exec -it httpd_container_id bash
# httpd -k start
# vim /var/www/html/1.html
# curl 127.0.0.1:5123/1.html
其中 -p 选项也支持 ip:port:port 跟 ip::port
比如:127.0.0.1:5123:80 和 127.0.0.1::80
前者将本地 5123 端口映射到容器的80端口;后者将随机分配一个本地端口到容器的80端口
容器互联:
创建一个 mysql 的容器
# docker pull mysql
# docker run -itd -p
--name db mysql bash
新建一个 web 容器跟 mysql 容器互联
# docker run -itd -p 12308:80 --name web --link db:db centos-httpd bash
--link&name:alias
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:24251次
积分:3137
积分:3137
排名:第8034名
原创:278篇
转载:73篇
(20)(42)(131)(20)(45)(32)(74)比特客户端
您的位置:
详解大数据
详解大数据
详解大数据
详解大数据
用Dockerfile构建docker image
  dockerfile是为快速构建docker image而设计的,当你使用docker build 命令的时候,docker 会读取当前目录下的命名为Dockerfile(首字母大写)的纯文本文件并执行里面的指令构建出一个docker image。
  而另一种构建docker iamge 的方法是pull一些基础镜像下来启动成容器,然后进入容器内安装各种需要的程序以及配置好需要的环境,最后commit成一个镜像。但是相比之 Dockerfile的方法会更加,更加方便快捷,而且功能也更强大。(Docker build方法底层里也是在基础镜像下启动容器然后commit的,但是这些不需要我们手动去commit以及rm,都是自动化的。)
  ======(注:以下大部分内容均参考自官方文档)
  首先,是关于构建docker image的一些优化建议
  我们希望构建出的image对应的容器应该是可以在服务群中暂停(解耦性)并且快速替换,这要求容器可以在极短的时间内完成启动并配置运行起来。
  优化手段:
  使用.dockerignore文件 .
  dockerignore文件的设计是为了在docker build的过程中排除不需要用到的文件以及目录,目的是为了docker build这个过程可以尽可能地快速高效以及构建出来的image没有多余的“垃圾”。
  不要安装不必要的程序包
  我们希望构建出来的image尽可以的轻小、依赖性小以及构建过程尽可能地快。这就需要你在构建的时候不要安装不必要的程序,例如,一个数据的容器不需要安装文本编辑器。
  单一容器只运行单一的服务
  大部分情况下一个容器只建议运行一个服务,这样的好处在于:减小耦合度、利于容器复用以及提高容器的横向可扩展性。如果服务之间是需要联系的,就应该把服务放在不现的容器内,然后用container linking来关联这些容器以达到目的。
  最小化镜像层数(layers)
  关于镜像层数(layers)的概念请参考:docker镜像与容器存储结构分析/blog/?p=9
  把镜像层数减到最少可能加快容器的启动速度,但是这里也要权衡另一个问题:dockerfile的可读性。你可以把一个dockerfile写得很 复杂以达到构建出最小层数的镜像,但同时你的dockerfile可读性也降低了。所以我们要在镜像层数和dockerfile可读性之间做出让步与妥 协。
  对多行参数进行排序(一般按字母顺序)
  对参数排序可以方便以后修改更新这些参数以及确保不会重复重复输入了某些参数。例如官方的一个例子是:
  RUN apt-get update && apt-get install -y \ bzr \ cvs \ git \ mercurial \ Subversion
  把要安装的程序包名按字母排序可以方便管理。
  构建的时候使用cache
  Docker build期间docker会按你提供的dockerfile文件里面的指令按顺序逐条执行。Docker在首先检查每指令的时候会去cache里搜 查是否有执行过这条指令并且可以复用的镜像,如果没有再去构造一个新的镜像。这是默认的情况,如果你指定不要这个过程可以在docker build里用如下参数:
  Cno-cache=true
  Docker查找cache的过程:
  首先在cache里从base image(详见:docker镜像与容器存储结构分析/blog/?p=9)起,docker会比较dockerfile里的下一条指令与这个base image的每一个子镜像的构建指令是否匹配,如果匹配则命中,否则cache标为无效。
  对于一般指令这样简单比较就足够了,但是有些精确的指令要求更详细精确的比较或者说明。 (add和copy指令见官方文档/articles/dockerfile_best-practices/) 一旦cache在dockerifle里某一条指令检查时被标为无效,执行这个dockerfile以后的指令就不再使用cache。
  Dockerfile主要指令简介:
  dockerfile里的第一条指令,后面跟有效的镜像名(如果该镜像你的本地仓库没有则会从远程仓库Pull取)。后面的指令在些镜像中执行。
  FROM : MAINTAINER MAINTAINER  作者信息
  后跟要执行的命令,每一条RUN指令(可能会有多条linux命令)会在当前容器最上面的可读写层执行并且提交成一个新的镜像层,接下来的指令会在这个新的镜像层里执行。
  RUN (the command is run in a shell C /bin/sh -c C shell form) RUN ["executable", "param1", "param2"] (exec form)
  注意下面的情况:
  不要在一条RUN指令里单一使用apt-get update命令,这样可能会导致以后的apt-get install 安装出错。
  避免使用RUN apt-get upgrade 或者dist-upgrade,这样有些重要的软件包可能更新失败,如果你确实想要更新某个包A,使用apt-get install install -y A 。这样会自动更新这个软件包。
  更多请参考官方文档。
  CMD指令指定你制作出来的镜像在启动成容器时运行命令的默认的参数。
  CMD有三种写法:
  CMD ["executable","param1","param2"] (exec form, this is the preferred form) CMD ["param1","param2"] (as default parameters to ENTRYPOINT) CMD command param1 param2 (shell form)
  第一种是可执行文件加参数,第二种是作为ENTRYPOINT的参数,第三种是作为”/bin/sh -c”的参数。
  这里CMD与ENTRYPOINT的区别强烈推荐你去看 论docker CMD与ENTRYPOINT的大区别 /programfish/p/4101884.html 这篇文章。看完你就懂了。
  ENTRYPOINT
  ENTRYPOINT字面意思指定容器的进入点。可以把你的容器制作成类似可执行文件的用法。这个指令会覆盖它前面的CMD指令,而多个 ENTRYPOINT指令只有最后一个生效(后面覆盖前面)。同时你也可以在在启动container 的时候指定Centrypoint参数来覆盖dockerfile里的ENTRYPOINT。详见官方文档。
  例如我用了这样的指令制作镜像名叫echotest:
  ENTRYPOINT ["/bin/echo"]
  然后之后这样运行:
  docker run -it echotest “this is a echo”
  实际上是平时这样的命令:
  docker run -it echotest /bin/echo “this is a echo”
  这样你应该明白了吧。 这样一个容器的行为就很类似一个可执行文件了。 这里CMD与ENTRYPOINT的区别强烈推荐你去看 论docker CMD与ENTRYPOINT的大区别 /programfish/p/4101884.html 这篇文章。看完你就懂了。
  EXPOSE
  EXPOSE指定容器对外暴露的端口号。
  指定环境变量的值,例如你要确保CMD[“nginx”]能成功启动,你应该用ENV PATH /usr/local/nginx/bin:$PATH设定环境变量。另外你可以设定另外一些变量用于RUN命令里以便于dockerfile文件的维护:
  ENV PG_MAJOR 9.3 ENV PG_VERSION 9.3.4 RUN curl -SL /postgres-$PG_VERSION.tar.xz | tar -xJC /usr/src/postgress && … ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH
  这样多次出现版本号就可以通过一个变量来管理方便维护。
  VOLUME VOLUME ["path"] 创建指定的挂载点。 WORKDIR
  进入指定目录工作。
  其它指令详情见官方文档:/reference/builder/
  这里引用官方的一个dockerfile例子:
  # Nginx # # VERSION 0.0.1 FROM MAINTAINER Victor Vieux RUN apt-get update && apt-get install -y inotify-tools nginx apache2 openssh-server # Firefox over VNC # # VERSION 0.3 FROM ubuntu # Install vnc, xvfb in order to create a ‘fake’ display and firefox RUN apt-get update && apt-get install -y x11vnc xvfb firefox RUN mkdir ~/.vnc # Setup a password RUN x11vnc -storepasswd 1234 ~/.vnc/passwd # Autostart firefox (might not be the best way, but it does the trick) RUN bash -c ‘echo “firefox” && /.bashrc ‘ EXPOSE 5900 CMD ["x11vnc", "-forever" , "-usepw", "-create" ] # Multiple images example # #VERSION 0.1 FROM ubuntu RUN echo foo & bar # Will output something like ===& 907ad6c2736f FROM ubuntu RUN echo moo & oink # Will output something like ===& 695d7793cbe4 # You᾿ll now have two images, 907ad6c2736f with /bar, and 695d7793cbe4 with # /oink.
  #号为注释符,这里一个dockerfile构建4个镜像。
  写好Dockerfile文件后就可以在该目录下运行docker build . 命令了(可以用 -t 参数指定tag)。
[ 责任编辑:jj ]
去年,手机江湖里的竞争格局还是…
甲骨文的云战略已经完成第一阶段…
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!

我要回帖

更多关于 docker下载安装 的文章

 

随机推荐