docker入门+结合微服务实战(四)
介绍
容器是docker的另一个核心概念
简单的来说,容器是镜像的一个运行实例,所不同的是它有额外的可写文件层。
如果认为虚拟机是模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。那么docker容器就是独立运行的一个或一组应用,以及它们的必须运行环境。
查看容器列表
通过docker ps命令查看正在运行的容器列表,需要查询所有的容器需要加-a参数:
查询正在运行的容器:docker ps
查询所有容器 docker ps -a
创建容器
通过docker create 命令可以创建一个容器,这仅仅是创建,并没有启动容器。
用法: docker create --help
运行后显示的重要点意思如下
-i, --interactive Keep STDIN open even if not attached 打开容器的标准输入
–name string Assign a name to the container 指定容器的名称
-p, --publish value Publish a container’s port(s) to the host (default [])
指定端口,如:docker create -p 16399:6379 redis:3.0,其中16379
是主机端口,6379
是容器对外端口,二者对应起来
-t, --tty Allocate a pseudo-TTY 让Docke分配一个伪端(pseudo-tt)并绑定到容器的标准输入上
实战:
docker create -p 16379:6379 --name redis redis:3.0
查看容器列表:
docker ps -a
启动容器:
docker start 34(34是代表指定容器的id,输入前几位即可)
创建并且运行容器
上面通过docker create创建了容器,然后通过docker start来启动容器,其实这种做法并不常用。
更常用的是docker run命令,这个命令的意思是创建并且启动容器。
用法:创建并且运行一个redis容器,它的端口是16380。
那么命令就是
docker run -p 16380:6379 --name redis2 redis:3.0
输入命令后发现,这个容器已经创建并且运行,但是,它并没有在后台运行,当按下 control + c时,该容器将停止。
为了让容器在后台运行,需要添加参数 -d。
docker run -p 16380:6379 -d --name redis2 redis:3.0
报错说这个容器已经存在 所以我们要给他重命名
docker run -p 16380:6379 -d --name redis3 redis:3.0
测试结果显示,该容器可用。
接下来,我看下当前运行的容器:
目录中有三个容器,redis,redis3正在运行,redis2退出运行。
那么问题来了,redis2这个容器我不想要了,怎么删除?答
docker rm dc5b5c31b22a(dc5b5c**31b22a是这个容器的id)
启动/停止容器
启动容器:
docker start xxx(id或者容器名)
停止容器
docker stop xxx(容器名或容器id)
删除容器
通过命令docker rm 删除容器,删除正在运行的容器添加 -f 参数。
docker rm xxx(容器id或者容器名)
进入容器
有些时候我们需要进入容器内,做一些操作,比如,修改配置文件等。
进入容器命令。
docker exec
用法:
docker exec -it redis /bin/bash
如果出现错误并且code=2的话,docker版本问题