Docker系列文章
前言
本文将简单介绍docker容器管理、镜像管理、网络和存储等
一、Docker系统命令
1.1 启动与关闭
1.1.1 systemctl命令
systemctl start docker
systemctl stop docker
1.1.2 service命令
service docker start
service docker satrt
1.2 自动启动与关闭
1.2.1 docker开机自启
systemctl enbale docker
1.2.2 docker开机关闭
systemctl disabale docker
1.3 重新启动
systemctl restart docker
1.4 状态信息
1.4.1 运行状态
systemctl status docker
1.4.2 详细信息
docker info
1.5 帮助命令
docker --help
docker image--help
docker ps --help
二、Docker镜像命令
2.1 拉取与推送镜像
2.1.1 镜像搜索
docker search[镜像名]
docker search mysql
2.1.2 镜像拉取
docker pull [镜像名:标签]
docker pull mysql
docker pull mongo:7.0.6
2.1.2 镜像推送
docker push [私有仓库镜像]
2.2 构建镜像
docker build -t [镜像名] .
2.3 镜像操作
2.3.1 列出本地镜像
docker images
2.3.2 删除镜像
docker rmi 镜像ID
docker rmi -f 镜像ID #强制删除
docker rmi -f aabbcc
docker rmi -f 镜像ID 镜像ID #删除多个空格隔开
docker rmi -f aabbcc aabbcc
docker rmi -f $(docker images -aq) #删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID
2.3.3 导出/导入镜像
docker load -i <路径>
docker load mysql.tar
docker save 镜像名/镜像ID -o <保存路径>
docker save tomcat -o /mysql.tar
三、Docker容器命令
3.1 启动容器
3.1.1 docker run 常用参数详解
- i (以交互模式运行容器,通常与 -t 同时使用)
- t(启动容器后,为容器分配一个命令行,通常与 -i 同时使用)
- -p 80001:8000(端口映射)
- -v /宿主机路径:/容器路径(挂载数据卷)
- -e (环境变量)
- -d(后台运行)
- –name(自定义容器名)
3.1.2 示例
docker run -it --name some-mongo \ # 自定义容器名
-v /root/some-mongo/mongod.conf:/etc/mongo/mongod.conf \ # 数据目录映射
-v /root/some-mongo/data/db:/data/db \ # 数据目录映射
-v /root/some-mongo/data/db:/var/log/mongodb \ # 数据目录映射
-e MONGO_INITDB_ROOT_USERNAME=admin \ # 设置环境变量
-e MONGO_INITDB_ROOT_PASSWORD=abc123456 \ # 设置环境变量
-p 7006:27017 \ # 端口映射
-d mongo:4.4.7 \ # 后台运行
--config /etc/mongo/mongod.conf #自定义配置文件
3.2 容器操作
3.2.1 启动关闭容器
docker start/stop/restart [容器名]
docker start mysql
docker stop mongo
docker restart minio
3.2.2 查看所有容器状态
docker ps -a
3.2.3 删除容器
#删除一个
docker rm 容器ID
docker rm -f 容器ID #强制删除
docker rm mysql
docker rm -f mysql
#删除多个
docker rm -f $(docker ps -a -q)
3.3 调试与日志
3.3.1 查看日志
docker logs [容器ID]
docker logs mysql
3.3.2 进入容器终端
docker exec -it [容器ID] /bin/bash
docker exec -it mysql /bin/bash
docker inspect [容器ID]
docker inspect mongo
四、网络与存储
4.1 网络配置
docker network create [网络名] # 创建自定义网络
docker network ls # 列出网络
4.2 数据卷管理
docker volume create [卷名]
docker volume inspect # 查看卷详情
五、系统维护与监控
5.1 资源清理
docker system prune # 清理无用资源
docker image prune # 清理悬空镜像
5.2 监控与统计
docker stats # 实时资源监控
docker top [容器ID] # 查看容器进程
六、Dockerfile
6.1 配置文件
FROM # 基础镜像,当前新镜像是基于哪个镜像的
MAINTAINER # 镜像维护者的姓名混合邮箱地址
RUN # 容器构建时需要运行的命令
EXPOSE # 当前容器对外保留出的端口
WORKDIR # 指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
ENV # 用来在构建镜像过程中设置环境变量
ADD # 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
COPY # 类似ADD,拷贝文件和目录到镜像中!
VOLUME # 容器数据卷,用于数据保存和持久化工作
CMD # 指定一个容器启动时要运行的命令,dockerFile中可以有多个CMD指令,但只有最后一个生效!
ENTRYPOINT # 指定一个容器启动时要运行的命令!和CMD一样
ONBUILD # 当构建一个被继承的DockerFile时运行命令,父镜像在被子镜像继承后,父镜像的ONBUILD被触发
6.2 示例
# 阶段2:部署到 Nginx
FROM nginx:latest
# 复制构建后的静态文件到 Nginx 默认目录
COPY ./html /usr/share/nginx/html
# 复制自定义 Nginx 配置(可选)
COPY ./conf/nginx.conf /etc/nginx/conf.d/default.conf
# 暴露 80 端口
EXPOSE 8001
# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]