docker 进入容器的方式
1. 使用 docker attach 进入 Docker 容器
docker attach 命令是 Docker 提供的一种机制,允许用户从一个正在运行的容器中,与容器内的进程进行交互。
语法:
bash
docker attach [OPTIONS] CONTAINER
OPTIONS:
-i, --interactive=false 保持STDIN打开,通常与-t一起使用
-t, --tty=false 为STDIN/STDOUT/STDERR分配一个伪终端
-u, --detach-keys="" 分离键,用于在attach模式下将键发送到容器中
docker attach [OPTIONS] CONTAINER
OPTIONS:
-i, --interactive=false 保持STDIN打开,通常与-t一起使用
-t, --tty=false 为STDIN/STDOUT/STDERR分配一个伪终端
-u, --detach-keys="" 分离键,用于在attach模式下将键发送到容器中
使用示例:
bash
$ sudo docker run -itd ubuntu:14.04 /bin/bash
#然后我们使用docker ps查看到该容器信息,接下来就使用docker attach进入该容器
$ sudo docker attach 44fc0f0582d9
# 但在,使用该命令有一个问题。当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。
# 因为这个原因,所以docker attach命令不太适合于生产环境,平时自己开发应用时可以使用该命令。
$ sudo docker run -itd ubuntu:14.04 /bin/bash
#然后我们使用docker ps查看到该容器信息,接下来就使用docker attach进入该容器
$ sudo docker attach 44fc0f0582d9
# 但在,使用该命令有一个问题。当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。
# 因为这个原因,所以docker attach命令不太适合于生产环境,平时自己开发应用时可以使用该命令。
2. 使用 docker exec 进入 Docker 容器
docker exec 命令是 Docker 提供的一种机制,允许用户在一个正在运行的容器中,以命令的形式运行一个命令。
语法:
bash
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS:
-d, --detach=false 后台运行容器,并返回容器ID
-i, --interactive=false 保持STDIN打开,通常与-t一起使用
-t, --tty=false 为STDIN/STDOUT/STDERR分配一个伪终端
-u, --user="" 指定执行命令的用户
-w, --workdir="" 指定命令运行时的工作目录
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS:
-d, --detach=false 后台运行容器,并返回容器ID
-i, --interactive=false 保持STDIN打开,通常与-t一起使用
-t, --tty=false 为STDIN/STDOUT/STDERR分配一个伪终端
-u, --user="" 指定执行命令的用户
-w, --workdir="" 指定命令运行时的工作目录
使用示例:
bash
sudo docker exec -it 44fc0f0582d9 /bin/bash
# sudo docker ps
# sudo docker exec -it 775c7c9ee1e1 /bin/bash
sudo docker exec -it 44fc0f0582d9 /bin/bash
# sudo docker ps
# sudo docker exec -it 775c7c9ee1e1 /bin/bash