创建容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
参数就是options,如 --restart=always,一定要在image的前面
参数:
参数名称 | 参数意义 |
---|---|
-i | 以交互模式运行容器 |
-t | 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。-i 开启了input(输入)功能,连接了-t开启的一个容器里边的terminal(终端) |
-d | 在 run 后面加上-d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。此时所有I/O数据只能通过网络资源或者共享卷组来进行交互。因为容器不再监听你执行docker run的这个终端命令行窗口。 |
–name | –name 为创建的容器命名 |
-v | 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上 |
-p | 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射 |
--privileged=false | 指定容器是否为特权容器,特权容器拥有所有的capabilities |
--restart=always | 指定容器停止后的重启策略:
|
eg.
docker run --name testcontainer -p 8080:8080 -p 50000:50000 -d -v /usr/local/docker/testcontainer_home:/var/testcontainer_home --privileged=true --restart=always test/test:latest
查看容器
docker ps:只
查看当前运行的容器。
docker ps -a
:查看所有容器,包括停止的。
参数名称 | 参数意义 |
---|---|
CONTAINER ID | 容器id |
IMAGE | 创建容器时所使用的镜像 |
COMMAND | 运行容器中的软件执行的命令 |
CREATED | 容器的创建时间 |
STATUS | 容器的状态: UP 表示运行状态 Exited 表示关闭状态 |
PORTS | 宿主机端口和容器中软件的端口的对应关系 |
NAMES | 容器的名称 |
docker container port CONTAINER [PRIVATE_PORT[/PROTO]]
列出端口映射或容器的特定映射
进入容器
docker exec -it b44ee49f6019 /bin/bash
进入到刚创建的容器中,并启动一个bash。可以看到,一个bash终端打开了,在不影响容器内其他应用的前提下,用户可以很容易与容器进行交互。通过指定-it参数来保持标准输入打开,并且分配一个伪终端。
-i,–interactive=true|false:打开标准输入接受用户输入命令,默认为false;
–privileged=true|false:是否给执行命令以高权限,默认为false;
-t,–tty=true|false:分配伪终端,默认为false;
-u,–user=“”:执行命令的用户名或ID
如果是 openjdk:8-jre-alpine,是没有bash的,进入容器 docker exec -it b44ee49f6019 sh
查看容器占用的系统资源
docker stats:stats 命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。
docker stats --no-stream:如果不想持续的监控容器使用资源的情况,可以通过 --no-stream 选项只输出当前的状态。
docker stats --no-stream 容器ID/Name:只输出指定的容器。
[CONTAINER]:以短格式显示容器的 ID。
[CPU %]:CPU 的使用情况。
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
[MEM %]:以百分比的形式显示内存使用情况。
[NET I/O]:网络 I/O 数据。
[BLOCK I/O]:磁盘 I/O 数据。
[PIDS]:PID 号。
重启容器
docker restart [OPTIONS] CONTAINER
终止容器
docker stop [NAME]/[CONTAINER ID]
:将容器退出。
docker kill [NAME]/[CONTAINER ID]
:强制停止一个容器。
删除容器
docker rm [NAME]/[CONTAINER ID]
:不能够删除一个正在运行的容器,会报错。需要先停止容器。
查看镜像
docker images
删除镜像
docker rmi