1、docker简介
Docker 是一个开源的容器化平台,用于开发、部署和运行应用程序。它通过“容器”(Container)技术,将应用及其依赖环境(库、配置文件等)打包成一个轻量级、可移植的独立单元,实现 “一次构建,处处运行”。
图片
2、Docker 的核心价值
传统部署痛点 Docker 解决方案
环境差异(开发/测试/生产环境不一致) 一致性:容器环境处处相同
资源浪费(虚拟机独占完整OS) 轻量化:容器共享宿主机内核,资源利用率提升50%+
部署复杂(依赖冲突、配置繁琐) 标准化:镜像即交付物,一键部署
扩展性差(手动伸缩缓慢) 敏捷伸缩:秒级启停容器,无缝配合Kubernetes编排
3、docker操作指南
1.镜像操作
1
拉取镜像
docker pull 镜像名
2
推送镜像到服务
docker push 镜像名
3
导出镜像
docker save -o nginx.tar nginx:latest
4
导入镜像
docker load -i 文件名
5
查看本地镜像
docker images
6
删除镜像
docker rmi 镜像名
7
删除所有镜像
docker rmi $(docker images -q)
8
构建镜像
docker build -t myapp:v1 .
9
镜像搜索
docker search 镜像名
10
查看docker版本号信息
docker version
11
镜像打tag标签
docker tag e81eb098537d nginx:1.15
2.容器操作
1
容器运行
docker run -d --name 容器名 -p 8080:80 镜像名
2
限制cpu和内存资源
docker run --cpus=1 -m=2g --name=nginx -d nginx
3
容器进程
docker ps -a
4
停止容器
docker stop 容器ID 或docker stop $(docker ps -a -q)
5
启动容器
docker start 容器ID 或docker start $(docker ps -a -q)
6
重启容器
docker restart 容器ID
7
查看状态
docker stats 容器ID
8
查看日志
docker logs 容器ID 或 docker logs -f --tail=20 容器名
9
删除容器
docker rm 容器ID
10
强制删除运行的容器
docker rm -f 容器ID
11
进入容器
docker exec -it 容器ID bash
12
实时查看容器输出
docker attach 容器名/容器ID
13
查看容器信息
docker inspect 容器id
14
导出容器
docker export 0ab0b6c7ee29 >mynginx_export.tar
15
导入容器
docker import mynginx_export.tar mynginx:imported
docker run -d --name new_container mynginx:imported
16
将文件中的文件拷贝到容器中
docker cp nginx.tar web-1:/
17
删除所有镜像或容器
docker rm docker ps -a -q
docker container rm -f $(docker ps -a |awk '{print $1}') docker image rm -f 镜像id
3.网络管理
1
列出网络
docker network ls
2
创建自定义网络
docker network create my_network
3
容器加入网络
docker run -d --name app1 --network my_network nginx
4.数据卷管理
1
创建数据卷
docker volume create my_volume
2
挂载数据卷到容器
docker run -d -v my_volume:/app/data nginx
3
绑定主机目录
docker run -d -v /home/user/data:/app/data nginx
5.系统清理
1
删除停止的容器、未用网络、悬空镜像
docker system prune
2
额外删除未被任何容器使用的镜像
docker system prune -a
6.Docker Compose管理
1
启动服务
docker-compose up -d
2
停止并删除容器、网络
docker-compose down
3
查看服务状态
docker-compose ps
4、总结
Docker 通过容器化技术解决了应用交付的三大难题:
✅ 环境一致性
✅ 资源高效利用
✅ 部署自动化
已成为现代云计算、微服务和 DevOps 的基石工具,是开发者及运维团队的必备技能。
评论 (0)