天天看点

docker:从镜像创建容器容器与镜像的关系如何从镜像创建容器可能遇到的问题

容器与镜像的关系

容器是镜像实例化而来,容器即进程,镜像即文件。一个镜像可以启动多个容器,镜像类似于虚拟机中的只读模板,属于一个独立的文件系统。

docker也可以像虚拟机一样,通过docker run/启动、docker stop/停止、docker rm/删除,命令来控制容器启动/停止/删除容器。

如何从镜像创建容器

首先:

docker images

,获取本地所有镜像

docker:从镜像创建容器容器与镜像的关系如何从镜像创建容器可能遇到的问题

例如我们要创建rabbitmq的容器,命令如下

docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq 80bd4b95a49d
           

其中的参数含义很显然,-p 虚拟机端口:容器端口,是将虚拟机与容器的端口组成映射,当需要有多个端口映射时,就重复多少次。

docker:从镜像创建容器容器与镜像的关系如何从镜像创建容器可能遇到的问题

如上图,创建成功

启动创建的容器:

可能遇到的问题

1.The container name “/xxxx” is already in use by container

此时:

docker ps -a
           

找到所有的容器,然后删除名称重复的容器

docker rm xxxxxxxxx
           

xxxxxxxxx是容器的ID

2.端口被占用rror starting userland proxy: listen tcp 0.0.0.0:5672: bind: address already in use

通过如下命令查看端口占用情况

netstat -tanlp
           
docker:从镜像创建容器容器与镜像的关系如何从镜像创建容器可能遇到的问题

将对于进程编号7757杀死即可

sudo kill 7757