Docker 将Shell放入正在运行的(分离的)容器中
示例
登录到正在运行的容器
用户可以使用exec命令在新的交互式bashshell中输入正在运行的容器。
假设调用了一个容器,jovial_morse则可以通过运行以下命令获取交互式的伪TTYbashshell:
docker exec -it jovial_morse bash
使用特定用户登录正在运行的容器
如果要以特定用户身份输入容器,可以使用-u或--user参数进行设置。用户名必须存在于容器中。
-u,--user 用户名或UID(格式:<name|uid>[:<group|gid>])
此命令将登录到jovial_morse与dockeruser用户
docker exec -it -u dockeruser jovial_morse bash
以root用户身份登录到运行中的容器
如果要以root用户身份登录,只需使用该-uroot参数即可。根用户始终存在。
docker exec -it -u root jovial_morse bash
登录图像
您也可以使用run命令登录映像,但这需要映像名称而不是容器名称。
docker run -it dockerimage bash
登录到中间映像(调试)
您也可以登录在Dockerfile构建期间创建的中间映像。
输出dockerbuild.
$ docker build . Uploading context 10240 bytes Step 1 : FROM busybox Pulling repository busybox ---> e9aa60c60128MB/2.284 MB (100%) endpoint: https://cdn-registry-1.docker.io/v1/ Step 2 : RUN ls -lh / ---> Running in 9c9e81692ae9 total 24 drwxr-xr-x 2 root root 4.0K Mar 12 2013 bin drwxr-xr-x 5 root root 4.0K Oct 19 00:19 dev drwxr-xr-x 2 root root 4.0K Oct 19 00:19 etc drwxr-xr-x 2 root root 4.0K Nov 15 23:34 lib lrwxrwxrwx 1 root root 3 Mar 12 2013 lib64 -> lib dr-xr-xr-x 116 root root 0 Nov 15 23:34 proc lrwxrwxrwx 1 root root 3 Mar 12 2013 sbin -> bin dr-xr-xr-x 13 root root 0 Nov 15 23:34 sys drwxr-xr-x 2 root root 4.0K Mar 12 2013 tmp drwxr-xr-x 2 root root 4.0K Nov 15 23:34 usr ---> b35f4035db3f Step 3 : CMD echo Hello world ---> Running in 02071fceb21b ---> f52f38b7823e
注意--->Runningin02071fceb21b输出,您可以登录以下图像:
docker run -it 02071fceb21b bash