计算机网络/计算机科学与应用/系统/运维/开发

第九章、Docker 进入容器

注意,在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。


推荐使用官方的attach或exec命令进入后台


一、attach命令

attach是Docker自带的命令,

语法:docker [container]  attach [--detach-keys [=[]]]  [--no-stdin]  [--sig-proxy   [=true]]   CONTAINER 


支持的三个选项:

--detach-keys[=[]]:指定退出attach模式的快捷键序列,默认是CTRL-p CTRL-q;

--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终端,在不影响容器内其他应用的前提下,用户可以与容器进行交互。


image.png


注意:

通过指定-it参数来保持标准输入打开,并且分配一个伪终端。通过exec命令对容器执行操作是最为推荐的方式

Docker

日子是崭新的,不要回头看,如果今年还掉眼泪,希望是喜极而泣。

评论

^