前言

在上一篇文章中,我们完成了 Docker CE 的安装。本文将详细介绍 Docker 容器的基础操作,包括运行容器、目录挂载、端口映射等核心功能。

运行第一个容器

基础运行命令

docker run -t -i ubuntu /bin/bash

参数说明:

  • -t:分配一个伪终端
  • -i:保持标准输入打开
  • ubuntu:镜像名称
  • /bin/bash:要执行的命令

目录挂载

基本挂载语法

docker run -it -v /test:/soft centos /bin/bash

这个命令将:

  • 宿主机的 /test 目录挂载到容器的 /soft 目录
  • 实现宿主机与容器之间的文件共享

挂载权限问题

如果遇到权限问题(如 chown xxx permission denied),可以在目录后添加 :z

docker run -it -v /data/pg/:/var/lib/postgresql/data:z postgres

容器退出和保持运行

正常退出但保持运行

使用 Ctrl+P+Q 组合键可以退出容器但保持其在后台运行。

自定义退出键

如果 Ctrl+P+Q 不起作用,可以自定义退出键:

docker run -it --detach-keys "ctrl-p" ubuntu /bin/bash

这样只需按 Ctrl+P 即可退出。

端口映射

基本端口映射

docker run -p ip:hostPort:containerPort centos

实际示例

docker run -p 8080:80 nginx

这将宿主机的 8080 端口映射到容器的 80 端口。

进入运行中的容器

方法一:attach 命令

docker attach containerid

方法二:exec 命令(推荐)

docker exec -it mysql bash

exec 命令的优势:

  • 可以在容器中启动新的进程
  • 退出时不会停止容器

容器管理操作

查看运行中的容器

# 查看最后运行的容器
docker ps -l

# 查看所有容器
docker container ls

重启容器

docker restart containerid

查看容器日志

docker container logs [container ID or NAMES]

容器保存和提交

提交容器为镜像

docker commit containerid centos/mycentos

这将当前容器的状态保存为新的镜像。

实际应用示例

运行带挂载的开发环境

docker run -it \
  -v /home/user/project:/workspace \
  -p 3000:3000 \
  ubuntu /bin/bash

这个命令创建了一个完整的开发环境,包含:

  • 项目目录挂载
  • 端口映射
  • 交互式终端

最佳实践

  1. 使用有意义的容器名称:bash复制docker run --name my-app -d nginx
  2. 合理使用资源限制:bash复制docker run -m 512m --cpus="1.0" nginx
  3. 及时清理不用的容器:bash复制docker container prune

总结

本文介绍了 Docker 容器的基础操作,这些命令是日常使用 Docker 的基础。掌握这些操作后,您就可以开始使用 Docker 来部署和管理应用了。

hjq

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注