1. 先docker拉取ubuntu镜像
docker search ubuntu #搜索ubuntu 镜像
docker pull ubuntu:22.04 #拉取ubuntu 镜像
docker images #下载完成后,查看已经下载的镜像
docker run --name ubuntu_container -dit ubuntu:22.04 /bin/bash #
docker container -l
2.根据镜像创建容器
docker run --name my_container -dit my_image:tag /bin/bash
--name:加上此参数可指定生成容器的名称,此参数位置在镜像id前
my_container 指定的容器名字
-d:打开后台运行
-i:打开控制台交互(不设置此选项退出容器后docker会自动清理未活动的容器)
-t:支持终端登录
my_image:tag 是要使用的镜像名称和标签。不喜欢打这么多字的可以用id代替
/bin/bash 表示要在容器内启动 Bash Shell进行交互
例如:
docker run --name ubuntu_container -dit ubuntu:22.04 /bin/bash #
首先,使用 docker ps
命令列出所有正在运行的容器,找到你想要进入的容器的名称或ID。
然后,使用 docker exec
命令以交互模式进入该容器。例如,如果你的容器名称是 my_container
,你可以使用以下命令启动一个新的bash终端:
docker exec -it
container_name
bash
这里的 -it
选项表示以交互式终端模式运行。
其他方法
使用 docker attach
命令
docker attach
命令也可以用于进入容器,但它会将你的终端与容器的标准输入、输出和错误流连接起来。这意味着,当你在该终端中执行命令时,所有窗口都会同步显示,且如果有一个窗口阻塞了,其他窗口也无法再进行操作。因此,docker attach
通常不推荐用于生产环境。
使用 nsenter
命令
nsenter
是一个可以访问另一个进程名称空间的工具。要使用 nsenter
进入容器,你需要先获取容器的PID(进程ID),这可以通过 docker inspect
命令来实现。然后,你可以使用 nsenter
命令连接到该PID并进入容器。然而,这种方法相对复杂,且需要额外的安装步骤,因此不如 docker exec
常用。
3.进入容器后,由于拉取的镜像为基础镜像,因此需要增加很多工具进行下载
sudo apt update #老规矩先更新
sudo apt install iputils-ping # ping工具
sudo apt install net-tools # 软件包 其中包括ifconfig
sudo apt install vim # vim编辑器
sudo apt install openssh-client # ssh 连接其他服务器ssh
sudo apt install openssh-server # 其他服务器连接本机ssh
sudo apt install vsftpd # ftp
4.界面查看容器
docker ps # 查看正在运行的容器
docker ps -a #查看所有容器包括未运行的
5.删除容器
docker ps #list the containers
docker stop da035bd84c7a #stop the container use id
sudo docker rm da035bd84c7a #delete the container use id
6.后续再次进入容器
docker exec -it 容器id或容器名称 /bin/bash # 退出容器后不会关闭容器
7.退出容器
关闭当前的终端会话并停止容器 输入 exit 并按 Enter
Ctrl + D 快捷键退出容器