- 常用的基本操作列表
命令行
解释
创建container
docker container create image_name
创建并运行container 及进入交互终端参数
docker container run -it image_id CMD
-i 交互模式
-t 终端
-it 为分配一个交互式终端
-d 放在后台
-p 端口映射
-v 源地址(宿主机):目标地址(容器)
--name 指定容器的名字
-h 指定容器主机名
--restart=always 每次重启服务,容器跟着重启
创建并运行container 并让其在后台运行,并端口映射
docker container run -p [port in
physical system] : [port in container]
-d [image] [command]
查看正在运行的所有container 信息
docker container ps
查看最后创建的container
docker container ps -l
查看所有container,包括正在运行和已经关闭的
docker conta
iner ps -a
输出指定container 的stdout 信息(用来看log,效果和tail -f 类似,会实时输出。)
docker container logs -f [container]
获取container 指定端口映射关系
docker container port [container] [port]
查看container 进程列表
docker container top [container]
查看container 详细信息
docker container inspect [container]
停止continer
docker container stop [container]
强制停止container
docker container kill [container]
启动一个已经停止的container
docker container start [container]
重启container(若container 处于关闭状态,则直接启动)
docker container restart [container]
删除container
docker container rm [container]
-f 强制参数
- 进入正在运行的容器
-
exec 语法:docker container exec [OPTIONS] CONTAINER [CONTAINER...]
完整信息,请查看:docker exec–help
# exec 会分配一个新的终端(pts)
docker container exec -it 容器id 或容器名字 /bin/bash
#执行进入必须要带参数和COMMAND(如:/bin/bash)
#进入容器可以用容器运行的id, 也可以用容器名称, 其目的都是唯一定位到容器
[root@localhost ~]# docker container exec -it centos /bin/bash (父镜像)
-
attach
语法:docker container attach CONTAINER
#如果Docker容器是使用/bin/bash命令启动的,则可以使用attach
[root@localhost temp]# docker attach t11
-
#exec 与attach 区别
EXEC: 在一个正在运行的容器中执行命令,exec是针对已运行的容器实例进行操作,在已运行的容器中执行命令,不创建和启动新的容器,退出shell不会导致容器停止运行。
Attach: 将本机的标准输入(键盘)、标准输出(屏幕)、错误输出(屏幕)附加到一个运行的容器,也就是说本机的输入直接输到容器中,容器的输出会直接显示在本机的屏幕上,如果退出容器的shell,容器会停止运行。
-
-
容器其他操作
# 关闭所有正在运行的容器
[root@master ~]# docker kill $(docker ps -q)
# 移除所有停止的容器
[root@master ~]# docker rm $(docker ps -a -q)
[root@demo ~]# docker container prune
# 根据状态移除
[root@master ~]# docker rm $(docker ps -q -f 'status=exited' -n 3)
[root@master ~]# docker rm $(docker ps -q -f 'status=exited')
# 根据标签移除
[root@master ~]# docker rm $(docker ps -a | grep nginx | awk '{print $1}')