快捷键:
CTRL+p+q:退出容器,并保持容器继续运行(或使用exit命令)
CTRL+d:退出容器,并终止容器运行
命令
查看容器:
docker ps --查看运行中的容器
选项:
-a -- 查看所有容器(docker ps -a)
-l --查看最后一次运行的容器
-f --添加过滤条件(docker ps )
-f status=exited --查看停止的容器
-a -f =ancestor=busybox --只列出busybox这个镜像的容器
-q --只列出容器id
-s --显示容器大小
删除容器:
docker rm
案例:
docker rm $(docker ps -a -q) -- 删除所有容器
docker rm $(docker ps -a -q -f =ancestor=busybox) --删除busybox镜像的所有容器
创建新容器
创建后容器的状态处于停止状态,可以使用docker start启动它
docker create -di hello-world
启动容器
docker start hello-world
停止容器:
docker stop 容器ID
重启容器:
docker restart 容器ID
容器重命名:
docker rename 容器名 新容器名
容器中执行命令
docker exec
docker exec 容器名 ls /etc --列出容器中/etc下的文件
docker exec -it 容器名 /bin/bash --以交互模式在容器中执行命令,和进入容器是一个效果
进入容器的两种方式:
1、docker exec -it 容器名(或者id) /bin/bash 2、docker attach 容器ID
区别:
docker exec进入容器后开启一个新的终端,常用
docker attach进入容器正在执行的终端,不启动新进程
容器、宿主机之间拷贝文件:
拷贝文件到容器:
docker cp 需要拷贝的文件或目录 容器名称:容器目录
容器文件拷贝到宿主机:
docker cp 容器名称:容器目录 需要拷贝的文件或目录
查看容器详细信息:
docker inspect 容器名
查看容器中的进程:
docker top 容器名
导出容器:(用来备份)
docker export hello-world >hello-world.tar
导出的容器导入到镜像:
cat hello-world.tar|docker import - fan/hello-world:t1
查看容器端口映射:
docker port mysql
查看数据卷:
docker volume ls
容器自启动以来的变化:
docker diff 容器名
动态容器的资源利用率:
docker stats 容器名
查看容器中的输出日志:
docker logs 容器名
对容器硬件资源的限制做修改:
docker update 容器名
查看容器事件:
docker events 容器名
容器迁移:
非常规手段,一个运行了很长时间的Container,应该是可以 restart 、甚至 kill 后再重新 run 也不影响既有功能的。 任何有依赖的状态,都应该考虑持久化、网络化,而不能单纯地保存在本地文件系统中。
适用于已经上线,且状态复杂、重新启动不能正常工作的服务。容器迁移的包包含镜像
步骤:
1、导出容器到一个文件
docker export hello-world >hello-world.tar
2、导出的容器导入到镜像,import后得到的是一个镜像,相当于执行了commit操作
cat hello-world.tar|docker import - fan/hello-world:t1
3、启动容器
docker run fan/hello-world:t1