Docker 容器命令
-
启动运行容器:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
-
部分 OPTIONS 说明:docker run --help 查看所有 OPTIONS
-
–name string 为容器指定名称
-
-d 后台运行容器并打印容器 ID
-
-i 以交互模式运行容器,通常与 -t 同时使用(启动交互式容器)
-
-t 为容器分配一个伪输入终端,通常与 -i 同时使用(启动交互式容器)
-
-p 指定端口映射
参数 说明 -p hostPost:containerPort 端口映射 -p ip:hostPost:containerPort 配置监听地址 -p ip::containerPort 随机分配端口 -p hostPost:containerPort 指定协议 -p hport1:cport1-p hport2:cport2 多个端口映射
-
-
-
查看运行中的容器:docker ps
Usage: docker ps [OPTIONS] List containers Options: -a, --all Show all containers (default shows just running) -f, --filter filter Filter output based on conditions provided --format string Pretty-print containers using a Go template -n, --last int Show n last created containers (includes all states) (default -1) -l, --latest Show the latest created container (includes all states) --no-trunc Don't truncate output -q, --quiet Only display container IDs -s, --size Display total file sizes
-
停止容器:
-
容器内,exit 退出,容器停止
-
ctrl+p+q 退出容器,容器不停止
-
-
启动已经停止运行的容器:docker start [OPTIONS] CONTAINER [CONTAINER…]
-
重启(一个或多个)容器:docker restart [OPTIONS] CONTAINER [CONTAINER…]
-
停止(一个或多个)容器:docker stop [OPTIONS] CONTAINER [CONTAINER…]
-
强制(一个或多个)停止容器:docker kill [OPTIONS] CONTAINER [CONTAINER…]
-
删除已停止的(一个或多个)容器:docker rm [OPTIONS] CONTAINER [CONTAINER…]
-
-f 强制删除
-
删除所有容器实例
-
docker rm -f $(docker ps -a -q)
-
docker ps -a -q | xargs docker rm
-
-
-
查看容器日志:docker logs [OPTIONS] CONTAINER
-
查看容器内运行的进程:docker top CONTAINER [ps OPTIONS]
-
查看容器内部细节:docker inspect [OPTIONS] NAME|ID [NAME|ID…]
-
进入正在运行的容器并命令行交互:
-
推荐:docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
- 一般用 -d 后台启动程序,再用 exec 进入对应容器实例
-
docker attach [OPTIONS] CONTAINER
-
区别:
-
exec 是在容器中打开新的终端;且用 exit 退出,不会导致容器的停止
-
attach 是直接进入容器启动命令的终端;且用 exit 退出,会导致容器的停止
-
-
-
容器与主机的文件拷贝
-
容器到主机:docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
-
主机到容器:docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
-
-
导入导出容器(用于容器备份)
-
导出容器的内容作为一个 .tar 归档文件:docker export [OPTIONS] CONTAINER
-
导入压缩包的内容从而创建文件系统镜像:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
-
Docker 后台启动容器:
在大部分的场景下,我们希望 Docker 的服务是在后台运行的(如 Redis、MySQL 等), 我们可以过 -d 指定容器的后台运行模式。
Redis 前后台启动:
-
前台交互式启动
-
后台守护式启动
但是,我们在使用某些镜像以后台模式启动时,由于 Docker 机制问题,容器会退出,下图所示使用 ubuntu:latest 镜像以后台模式运行,可以发现容器运行已经退出。
需要说明:Docker 容器后台运行,就必须有一个前台进程;容器运行的命令如果不是那些一直挂起的命令,就是会自动退出的。因此,要把运行的程序以前台进程的形式运行,常见就是命令行模式,表示我还有交互操作,别中断。