zoukankan      html  css  js  c++  java
  • docker 使用:镜像和容器

    docker 镜像

    docker image是一个极度精简版的Linux程序运行环境,官网的java镜像包括的东西更少,除非是镜像叠加方式的如centos+java7,需要定制化build的一个安装包,包括基础镜像+应用的二进制部署包,内不建议有运行期需要修改的配置文件

    Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等。当前目录下包含Dockerfile,使用命令build来创建新的image

    docker image的最佳实践之一是尽量重用和使用网上公开的基础镜像

    通过docker 拉取 一个ubuntu的镜像。

    docker pull ubuntu
    

    使用命令查看镜像是否存在:

    docker images
    

    这时候我们多了一个相应的镜像:

    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu              latest              d131e0fa2585        10 days ago         102MB
    

    docker 容器

    使用这个镜像启动一个实例,这个实例称为容器。

    Docker container是image的实例,共享内核不同的容器里可以运行不同os的image,比如Ubuntu的或者centos,不建议内部开启一个sshd服务,1.3版本后新增了docker exec命令进入容器进行排查问题,没有ip地址,通常不会有服务端口暴露,是一个封闭的沙盒。

    通过镜像启动一个实例:

    docker run -it -d --name ubuntu_test  ubuntu
    

    通过命令查看容器是否启动:

    docker ps
    

    得到如下结果:

    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    de3589d1bafa        ubuntu              "/bin/bash"         13 minutes ago      Up 13 minutes                           ubuntu_test
    

    镜像和容器的删除

    删除容器的时候需要确保容器没有在运行,在运行的话需要先关闭:

    docker stop de3589d1bafa
    

    然后进行删除:

    docker rm de3589d1bafa
    

    删除镜像,需要保证镜像没有被容器使用:

    docker rmi d131e0fa2585
    

    如果删除所有的容器可以使用如下:

    docker stop $(docker ps -a -q)
    docker rm $(docker ps -aq)
    

    进入容器

    安装完成了容器以后,想看看到底容器里面是什么,可以使用exec进入容器,例如进入ubuntu的容器中,容器跟普通的ubuntu没有什么区别:

    docker exec -it de3589d1bafa /bin/bash
    


    更多教程:大家来编程

  • 相关阅读:
    工厂设计模式
    Java 注解 (Annotation)你可以这样学
    java的多线程和并发库
    NIO高并发基础
    Java编写画图板程序细节-保存已画图形
    程序员必须知道的知识
    慢慢读懂经济【持续更新】-经济浅谈
    Spring IOC与AOP的简单实现
    Python网络爬虫【持续更新】-BeautifulSoup库的使用
    Python网络爬虫【持续更新】-requests库的使用
  • 原文地址:https://www.cnblogs.com/bugingcode/p/12290748.html
Copyright © 2011-2022 走看看