前言
在上一篇文章中,我们完成了 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
这个命令创建了一个完整的开发环境,包含:
- 项目目录挂载
- 端口映射
- 交互式终端
最佳实践
- 使用有意义的容器名称:bash复制
docker run --name my-app -d nginx - 合理使用资源限制:bash复制
docker run -m 512m --cpus="1.0" nginx - 及时清理不用的容器:bash复制
docker container prune
总结
本文介绍了 Docker 容器的基础操作,这些命令是日常使用 Docker 的基础。掌握这些操作后,您就可以开始使用 Docker 来部署和管理应用了。
