容器介绍
容器是Docker的另一个核心组件。
简单的说,容器是镜像的一个运行实例。
如果认为虚拟机是模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。那么Docker容器就是独立运行的一个或一组应用,以及它们的必需运行环境。
运行容器的命令
格式 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
查看容器常用选项:docker run --help
-i 交互式
-t 分配一个伪终端
-d 运行容器到后台
-e 设置环境变量
-p 发布容器端口到主机
-P 发布容器所有EXPOSE的端口到宿主机随机端口
--name 指定容器名称
-h 设置容器主机名
--ip 指定容器IP,只能用于自定义网络
--network 连接容器到一个网络
-v 将文件系统附加到容器
--restart 容器退出时重启策略,默认no,可选值:[always | on-failure]
-m 容器可以使用的最大内存量
--cpus 容器可以使用的CPU梳理
例子:
启动nginx容器到后台
docker run -d nginx
启动nginx容器到后台,并且分配一个伪终端
docker run -it -d nginx
访问宿主机88端口,即可映射到容器里面的80端口
docker run -d -e env=prod -p 88:80 --name web -h web --restart=always nginx
指定容器内存、cpu
docker run -m="500m" --cpus="1" -d nginx
操作容器的命令
eg. docker container COMMAND
- ls 列出容器
- inspect 查看一个或多个容器详细情况
- exec 在运行容器中执行命令
- commit 创建一个新镜像来自一个容器
- cp 拷贝文件/文件夹到一个容器
- logs 获取一个容器日志
- port 列出或指定容器端口映射
- top 显示一个容器运行的进程
- stats 显示容器资源使用统计
- stop/start/restart 停止/启动/重启一个或多个容器
- rm 删除一个或多个容器
- prune 移除已停止的容器
例子:
列出本地所有容器
docker container ls docker ps
使用web容器环境执行ls命令(其中web为容器的名称)
docker exec web ls
进入容器中(其中web为容器的名称,进入容器后可查看变量echo $env)
docker exec -it web bash
查看容器内的进程(其中web为容器的名称)
docker top web
重启容器
docker restart web
拷贝宿主机上的文件mainfest.json 到web容器的根目录下
docker cp mainfest.json web:/
列出web容器端口映射
docker port web
查看web容器中的进程
docker top web
查看web容器内的资源使用情况
docker stats web
重启web容器
docker restart web
删除web容器
docker rm -f web
移除已经停止的容器
docker container prune
删除所有容器
docker rm -f ${docker ps -qa}
将某容器为本,创建除一个新镜像
docker commit <容器名称或容器ID> <镜像名称:版本号>
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。