Docker-容器命令

快捷键:

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

原文地址:https://www.cnblogs.com/fanfan-90/p/13691355.html