一、容器与镜像区分
来自网上大佬的理解:
-
镜像你可以把它看成Java中的类,而容器可以看做是类的实例化对象。
-
一个类可以有多个对象,同理,一个镜像可以有多个容器。
容器是由镜像实例化而来。
简单来说,镜像是文件,容器是进程。
容器是基于镜像创建的,即容器中的进程依赖于镜像中的文件。
二、镜像常用相关命令
-
查看所有本地的主机上的镜像
docker images 运行结果 REPOSITORY TAG IMAGE ID CREATED SIZE rabbitmq management fa6f2153e5c0 3 weeks ago 256MB hello-world latest 9c7a54a9a43c 7 weeks ago 13.3kB # 解释 REPOSITORY 镜像的仓库源 TAG 镜像的标签 iMAGE ID 镜像的id CREATED 镜像的创建时间 SIZE 镜像的大小 docker images -a #列出所有 docker images -q #只显示镜像的id
-
搜索镜像
docker search *
-
下载镜像
docker pull *[tag(版本)] # 加版本号下载版本号的,不加默认下载最后一个
-
删除镜像
docker rmi -f (id) #删除一个镜像 docker rmi -f(id id id id) #删除多个镜像 docker rmi -f (docker imager -aq) #删除所有镜像 #也可以使用其他查找命令进行删除
三、容器常用相关命令
-
下载一个容器
docker pull
-
新建容器并启动并进入
docker run [参数] image # 参数说明 --name="Name" 容器名字 tomcat01 tomcat02,用来区分容器 -d 后台方式运行 -it 使用交互方式运行,进入容器查看内容 -p 指定容器的端口 -p 8080:8080 -p ip:主机端口:容器端口 -p 主机端口:容器端口 (常用) -p 容器端口 容器端口 -P 随机指定端口 举例:docker run -it mysql /bin/bash #后台启动容器(不进去) docker run -d [镜像名]
-
列出所有的运行的容器
docker ps [参数] # 查看已启动容器 docker ps # 查看所有容器(包括启动,关闭,历史启动过) docker ps -a
-
退出容器
#停止加退出 exit #退出 Ctrl + P + Q
-
删除容器
#根据id删除 docker rm [id] #不能删除运行的容器 docker rm -f [id] #强制删除
-
启动停止容器、进入容器
docker start [id] #启动容器 docker restart [id] #重启 docker stop [id] #停止正在运行 docker kill [id] #强制停止 #进入容器 (1)docker exec -it [id] /bin/bash #exec会进入容器并开启一个新bash终端,exit时不会导致容器stop,attach退出时会导致容器stop (2)docker attach [id] # docker exec 进入容器后开启一个新的终端,可以在里面操作(常用) # docker attach 进入容器正在执行的终端,不会启动新的进程!