Docker学习总结

Posted yangtze-yufei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker学习总结相关的知识,希望对你有一定的参考价值。

Docker学习总结

一、docker简介

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

二、docker组成

  一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器

三、使用docker的好处

  使用docker可以更轻松的实现部署和迁移,能保持环境的一致性。

四、docker基本概念

  1. 镜像

    相当于一个文件系统。除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。

    镜像是分层的,前一层是后一层的基础。

  1. 容器

    容器是镜像运行时的实体,容器的实质是进程。

  1. 仓库

    集中存储、分发镜像的服务。

五、生成镜像

  1. 选择机器作为生成镜像的机器
  2. /data/docker/daemon.js配置

    (mac有图形界面,直接在界面中配置)配置IP和端口,指明仓库地址,生成的镜像会拷贝到这里。使用其他镜像作为基础的,要指明基础镜像来源地址,例如"ampregistry:5000",表明基础镜像来自这里,ampregistry要在hosts中配置。

       3.生成镜像准备工作

    创建空白目录,再放入Dockerfile文件、需要打成镜像的文件。

    目录结构如下:

DockerTest

----test

-------- test_webboot.jar

---- Dockerfile

---- application.properties

 

Dockerfile    生成镜像文件的docker配置文件,指明了基础镜像的来源、时区等环境信息、镜像要包含的文件、启动命令等。

 1 FROM ampregistry:5000/base:1.0.0          //当前镜像的基础镜像,以该镜像为基础,ip:端口/镜像名称
 2 
 3 ENV TZ Asia/Shanghai                                                   //时区、语言、编码
 4 ENV LANG zh_CN.UTF-8
 5 ENV LANGUAGE zh_CN:zh
 6 ENV LC_ALL zh_CN.UTF-8
 7 
 8 WORKDIR /opt/project
 9 
10 ADD application.properties /opt/project/config/application.properties   //镜像包中要包含的文件,以及docker运行后文件拷贝到的目录
11 ADD test/test_webboot.jar /opt/project/
12 
13 CMD ["java", "-jar", " test_webboot.jar"]                //镜像包中jar包启动命令

  4.执行生成镜像命令

    docker build -t ampregistry:5000/test:dev .

    命名规则为:名称:标签

    最后的.表示当前上下文。

六、运行镜像

       docker run

七、docker发放

       可以使用tar包进行部署。

1、保存tar包

如果想要把镜像存出到本地文件,可以使用docker save命令,例如,存出本地的刚才创建的testimage:lastest为镜像文件testimage.tar文件:

docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

testimage           latest              baea98d5a437        25 minutes ago      188.3 MB

ubuntu              latest              fa81ed084842        3 days ago          188.3 MB

 

docker save –o /data/testimage.tar testimage:latest

 

得到tar包后,可以拿到其他机器进行载入。

docker load —input testimage.tar

 

或者

docker load < testimage.tar

八、常用命令

  镜像操作:

  build     Build an image from a Dockerfile

  commit    Create a new image from a container‘s changes

  images    List images

  load      Load an image from a tar archive or STDIN

  pull      Pull an image or a repository from a registry

  push      Push an image or a repository to a registry

  rmi       Remove one or more images

  search    Search the Docker Hub for images

  tag       Tag an image into a repository

  save      Save one or more images to a tar archive (streamed to STDOUT by default)

  history   显示某镜像的历史

  inspect   获取镜像的详细信息

 

  容器及其中应用的生命周期操作:

  create    Create a new container (创建一个容器)      

  kill      Kill one or more running containers

  inspect   Return low-level information on a container, image or task

  pause     Pause all processes within one or more containers

  ps        List containers

  rm        Remove one or more containers (删除一个或者多个容器)

  rename    Rename a container

  restart   Restart a container

  run       Run a command in a new container (创建并启动一个容器)

  start     Start one or more stopped containers (启动一个处于停止状态的容器)

  stats     Display a live stream of container(s) resource usage statistics (显示容器实时的资源消耗信息)

  stop      Stop one or more running containers (停止一个处于运行状态的容器)

  top       Display the running processes of a container

  unpause   Unpause all processes within one or more containers

  update    Update configuration of one or more containers

  wait      Block until a container stops, then print its exit code

  attach    Attach to a running container

  exec      Run a command in a running container

  port      List port mappings or a specific mapping for the container

  logs      获取容器的日志 

以上是关于Docker学习总结的主要内容,如果未能解决你的问题,请参考以下文章

docker的学习总结

Docker学习总结之docker入门(转自:Vikings翻译)

Docker 学习总结(74)—— Docker Swarm 全面总结

线程学习知识点总结

ROS1学习-01使用ROS系统进行相关代码开发,使用docker解决环境问题,遇到一些奇怪问题,总结汇总下,开始学习研究

ROS1学习-01使用ROS系统进行相关代码开发,使用docker解决环境问题,遇到一些奇怪问题,总结汇总下,开始学习研究