小白也能看懂的Docker容器入门:从启动到操作全流程
大家好呀!今天咱们就用最直白的话,讲讲怎么用Docker容器跑应用,还有那些绕人的命令到底是啥意思。就算你之前没接触过,跟着步骤走也能学会~
一、先搞懂:容器是啥?
你可以把容器当成一个“迷你小电脑”——它不用装完整的操作系统,却能跑应用(比如Nginx网页服务)。而且启动超快,用完能直接删掉,不占多余空间。
咱们今天就以“用容器跑Nginx”为例,一步步操作起来~
二、启动第一个容器:Nginx服务
1. 启动命令:docker run -d nginx:latest
这个命令是“从Nginx镜像创建并启动容器”,里面的-d
是关键参数:
-d
:表示“后台运行”(如果不加,终端会被容器占用,关了终端容器就停了)
第一次运行时,会看到一串“下载进度”(就像下载软件),因为本地没有Nginx镜像,会自动从网上拉取:
[root@localhost ~]# docker run -d nginx:latest
Unable to find image 'nginx:latest' locally
latest:Pulling from library/nginx
3da95a905ed5:Downloading 27.13MB/28.23MB # 这就是分层下载,之前学过的~
6ce51c07:Downloading 26.98MB/43.97MB
...(中间省略其他层)
ee95256df030:Download complete # 所有层下载完,容器就启动了
2. 查看容器:docker ps
启动后,用docker ps
看看正在运行的容器:
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eacf94467c22 nginx:latest "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 80/tcp elastic_dhawan
输出里的关键信息:
- CONTAINER ID/NAME:容器的“身份证号”或“名字”(比如
eacf94467c22
或elastic_dhawan
),后面操作容器全靠它 - STATUS:
Up 3 minutes
表示容器正在运行
三、进入容器:两种方式(exec
和attach
)
启动容器后,有时候需要进去操作(比如改配置),这里有两种常用方法,区别很大哦~
方法1:docker exec -it 容器ID/名称 bash
(推荐)
exec
是“在容器里新开一个终端”,退出后容器还能继续运行,参数-it
是必须的:
-i
:保持输入连接-t
:提供终端界面
举例:进入刚才的Nginx容器(用NAME更简单):
[root@localhost ~]# docker exec -it elastic_dhawan bash
root@eacf94467c22:/# # 这就进入容器啦,可以输命令,比如ls查看文件
退出时直接输exit
,容器不会停,超方便!
方法2:docker attach 容器ID/名称
(慎用)
attach
是“直接连接容器的主终端”,如果用exit
退出,容器会跟着停止!
[root@localhost ~]# docker attach elastic_dhawan
# 进入后如果输exit,容器会停止!
# 想退出又不停止容器?按快捷键ctrl+p+q(先按ctrl+p,再按ctrl+q)
两者的核心区别
命令 | 退出方式 | 容器是否会停止 | 适合场景 |
---|---|---|---|
docker exec | 输exit | 不会 | 临时操作(查文件、改配置) |
docker attach | 输exit 会停止;用ctrl+p+q 不会 | 可能会 | 需要长期盯着主进程输出 |
四、容器的其他常用操作
1. 停止容器:docker stop 容器ID/名称
比如停止刚才的Nginx容器:
[root@localhost ~]# docker stop elastic_dhawan
elastic_dhawan # 输出容器名,说明停止成功
2. 启动已停止的容器:docker start 容器ID/名称
[root@localhost ~]# docker start elastic_dhawan
elastic_dhawan # 容器重新启动
3. 查看所有容器(包括已停止的):docker ps -a
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE STATUS NAMES
eacf94467c22 nginx:latest Exited (0) 2 minutes ago elastic_dhawan
4. 删除容器:docker rm 容器ID/名称
注意:必须先停止容器才能删除!
# 先停止
docker stop elastic_dhawan
# 再删除
[root@localhost ~]# docker rm elastic_dhawan
elastic_dhawan # 删除成功
五、总结:必记命令和参数
操作 | 命令 | 关键参数/说明 |
---|---|---|
启动容器(后台) | docker run -d 镜像名 | -d :后台运行 |
查看运行中容器 | docker ps | 不加参数只看运行中的 |
进入容器(推荐) | docker exec -it 容器ID/名称 bash | -it :提供交互式终端 |
停止容器 | docker stop 容器ID/名称 | - |
启动已停止容器 | docker start 容器ID/名称 | - |
删除容器 | docker rm 容器ID/名称 | 必须先停止容器 |
记住这些,你就掌握了Docker容器的基本操作啦!