- 创建一个新的容器并运行
docker run [OPTIONS] IMAGE [COMMAND] [AGR…]“
OPTIONS说明:
—name=”容器的新名字”:为容器指定一个名称
-d:后台运行容器,并返回容器ID,也即启动守护式容器
-i: 以交互模式运行容器,通常和-t同时使用
-t: 为容器重新分配一个伪输入终端,通常与-i同时使用
-P:随机端口映射
-p:指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
示例: docker run -it xxxxximageid
COAMMD说明:需要在容器内执行的命令
-d: 守护式启动使用docker ps是查询不到的,容器已经退出
说明:Docker容器后台运行,就必须有一个前台进程
容器运行的命令如果不是哪些一直挂起的命令(比如运行top,tail),就会自动退出。
这个是docker的机制问题,比如你的web容器,以nginx为例,正常情况下启动服务只需要启动响应的service即可 例如service nginx start
但是这样做nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀因为它觉得没事可做了。
解决方案:将运行的程序以前台进程的形式运行。
- 列出当前正在运行的容器
docker ps [OPTIONS]
OPTIONS说明:
-a:列出当前所有正在运行的容器+历史上运行过的
-l:显示最近创建的容器
-n:显示最近n个创建的容器
-q:静默模式,只显示容器编号
—no-trunc:不截断输出
示例:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e0b35196342e 5d0da3dc9764 “/bin/bash” 10 seconds ago Up 9 seconds magical_euclid
启动的时候没有指定—name 使用了默认的”magical_euclid”
- 退出容器
exit 彻底退出容器
ctrl+p+q 不停止容器退出
- 容器操作
4.1 启动某个容器
docker start Container
示例:
docker start xxxContainerId或容器名称
4.2 重启某个容器
docker restart Container
4.3 停止容器
docker stop Container
4.4 强制停止容器
docker kill Container
4.5 删除已停止的容器
docker rm [OPTIONS] Container rmi是删除镜像
OPTIONS说明:
-f:强制删除
可批量删除,示例:docker rm -f $(docker ps -a -q)
4.6 查看容器日志:
docker logs [OPTIONS] ContainerId
OPTIONS说明:
-t:加入时间戳
-f:跟随最新的日志打印
—tail: 显示最后多少条
4.7 查看容器内运行的进程
docker top ContainerId
4.8 查看容器内部细节
docker inspect ContainerId
返回一个JSON字符串,包含了容器所有的结构信息
4.9 进入正在运行的容器并以命令行交互
docker exec -it ContainerId bashShell
docker attach ContainerId 重新进入
区别:attach直接进入容器启动命令的终端,不会启动新的进程,exec是在容器中打开新的终端,并且可以启动新的进程
tip:docker exec -it ContainerId /bin/bash 进入终端时,如果没有加-i是没法执行交互命令的,但是可以进入到终端。
4.10 从容器内拷贝文件到主机上
docker cp ContainerId:容器内路径 目的主机路径
