注意,在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。
推荐使用官方的attach或exec命令进入后台
一、attach命令
attach是Docker自带的命令,
语法:docker [container] attach [--detach-keys [=[]]] [--no-stdin] [--sig-proxy [=true]] CONTAINER
支持的三个选项:
--no-stdin=true|false 是否关闭标准输入,默认是保持打开
--sig-proxy=true|false 是否代理收到的系统信号给应用进程,默认为true
实例:后台启动一个容器,然后进入容器
$ docker run -itd mysql $ docker attach 容器名或容器id
实例:进入mysql容器
# docker attach mysql-stu
注意,如果attach经常卡住不动,退出 ctrl+p ctrl+q
二、exec命令
该命令可以直接在容器内使用任意命令
语法:
docker [container] exec [-d|--detach] [--detach-keys[=[]]] [-i|--interactive] [--privileged] [-t|--tty] [-u|--user[=USER]] CONTAINER COMMAND [ARG...]
参数:
-d, --detach:在容器中后台执行命令;
--detach-keys="":指定将容器切回后台的按键;
-e, --env=[]:指定环境变量列表;
-i, --interactive=true|false:打开标准输入接受用户输入命令,默认值为false;
--privileged=true|false:是否给执行命令以高权限,默认值为false;
-t, --tty=true|false:分配伪终端,默认值为false;
-u, --user="":执行命令的用户名或ID。
进入刚创建的容器中,并启动一个bash
# docker ps 查看正在运行的容器 # docker exec -it 容器id /bin/bash 进入容器
可以看到会打开一个新的bash终端,在不影响容器内其他应用的前提下,用户可以与容器进行交互。
注意:
通过指定-it参数来保持标准输入打开,并且分配一个伪终端。通过exec命令对容器执行操作是最为推荐的方式