一、容器简介
容器是Docker的另一个核心感念。
容器是镜像的一个运行实例,所不同的是,它带有额外的可写文件层。
查看 docker stats 指令的具体使用方法:
docker stats --help
- 创建容器
Docker的容器十分轻量级,用户可以随时创建或删除容器。
- 新建容器:
docker run :创建一个新的容器并运行一个命令:
语法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
-i:以交互模式运行容器,通常与 -t 同时使用
-d:后台运行容器,并返回容器ID
--name:为容器指定一个名称
-p:端口映射,格式为:主机(宿主)端口:容器端口
-v: 挂载宿主机文件夹,格式为: 宿主机文件夹:容器文件夹
--link: 添加链接到另一个容器
-m:设置容器使用内存最大值;
例:
使用docker镜像tomcat:latest以后台模式启动一个容器,并将容器命名为mytomca
docker run -tid --name mytomcat tomcat:latest
使用镜像tomcat:latest以后台模式启动一个容器,并将容器的8080端口映射到宿主机的8080端口。
docker run -tid --name mytomcat -p 8080:8080 tomcat:latest
使用镜像tomcat:latest以后台模式启动一个容器,并将容器的8080端口映射到宿主机的8080端口,主机的目录 /home 映射到容器的 /home
docker run -tid --name mytomcat -p 8080:8080 -v /home:/home tomcat:latest
使用镜像tomcat:latest启动一个容器,在容器内执行/bin/bash命令
docker run -it tomcat:latest /bin/bash
- 启动容器
- docker输出:
安装centos容器后,执行centos的echo命令:
docker run centos /bin/echo 'hello world!'
-
查看容器:
如查不定义名称,会自动给个名称:
[root@localhost ~]# docker ps –a
查看最后一个运行的容器
[root@localhost ~]# docker ps -l
docker inspect 容器ID 查看容器内部细节
docker top 容器ID 查看容器内运行的进程
进入容器
docker attach 容器ID 直接进入容器终端的命令,不会启动新的进程docker cp 容器ID:容器内路径 目标主机路径 从容器内拷贝文件到主机上
进入正在运行的容器并以命令行交互
docker exec -it 容器ID bashShell 在容器中打开新的终端,并且可以启动新的进程
二、常用命令:
- 容器启停命令:
启动容器:docker start 容器ID或者容器名
重启容器:docker restart 容器ID或者容器名
停止容器:docker stop 容器ID或者容器名
停止容器, containerId 是容器的ID
docker stop containerId
- stop停止所有容器
docker stop $(docker ps -a -q)
- 强制停止容器:docker kill 容器ID或者容器名
杀死所有正在运行的容器
docker kill $(docker ps -a -q)
- 删除已停止的容器
删除单个容器:docker rm 容器ID
删除多个容器:docker rm -f $(docker ps -a -q)
删除所有已经停止的容器
docker rm $(docker ps -a -q)
- 删除所有未打 dangling 标签的镜像
docker rmi $(docker images -q -f dangling=true)
- Docker内置自动清理
docker system prune
docker system prune 自动清理说明:
该指令默认会清除所有如下资源:
已停止的容器(container)
未被任何容器所使用的卷(volume)
未被任何容器所关联的网络(network)
所有悬空镜像(image)。
该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。添加-a 或 --all参数后,可以一并清除所有未使用的镜像和悬空镜像。
- 只删除未使用的volumes
docker volume prune
- 查看容器
查看所有正在运行容器
docker ps
- 查看所有容器
docker ps -a
- 查看所有容器ID
docker ps -a -q
- 删除镜像
删除所有镜像
docker rmi $(docker images -q)
- 强制删除镜像名称中包含“doss-api”的镜像
docker rmi --force $(docker images | grep doss-api | awk '{print $3}')