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


更多教程:大家来编程

你可能感兴趣的:(docker)