Docker基本使用命令
前言
刚看别人使用Docker的时候有很多不解,为什么要用Docker,Docker怎么用?Docker配置为什么这么难?为什么网络访问不通?等等因素阻碍了笔者学习Docker?其实笔者也很笨,有很多思考不清晰的点。顺便也分享下。
学时疑惑:
Q:我一套服务为什么不放在一个容器里面(Java、MySQL、Nginx、Redis等)?
A:因为既要维护容器内网络,又要维护端口等等之类的东西,Docker就是为了快速搭建环境而生的,而且Docker最好也是一个服务一个容器,这样好打理。
Q:Docker能放到生产环境吗?
A:在公司没有专门的运维团队情况下,不建议使用Docker部署的环境作为生产环境,因为不仅仅要维护项目和中间件,Docker或者Kubernetes出现问题后,还要解决这些问题,也就是还要解决Docker的问题。如果在没有专门运维团队的情况下,最好使用某里云的服务,例如RDS,SLB等,最起码别人还会帮你维护你的数据库和服务。
基本命令 下载镜像 # 以Redis为例子 docker pull redis 运行Do镜像 docker run -d # 后台运行 --name redis6 # 自定义名字 -p 6379:6379 # 端口映射 redis # 镜像名称 docker run -d --name redis6 -p 6379:6379 redis redis-server --appendonly yes --requirepass "123456" # 完整命令 进入容器
第一种(不推荐,当退出容器使用exit命令时,会停止这个容器):
docker attach 容器id
第二种:
docker exec -itck 容器id /bin/bash 暂停容器 docker stop 容器id 启动容器 docker start 容器id 查询容器列表 docker ps -a # 查看所有容器 docker ps # 查看运行中的容器
run和start的区别:
run是创建一个新的容器 start是把已经创建好的容器启动 查看容器信息 docker inspect 容器id 挂载 挂载介绍
容器里面的文件都是在容器内部,而跟你当前电脑是没有关系的,如果删除了容器怎么办?但是资料又想保存就像MySQL一样,我只是换一台电脑就要把整个容器复制过去,太麻烦了!所以需要把容器的文件跟当前主机文件作为一个映射。
命令教程
参数-v宿主机路径:容器路径
# 以MySQL为例子 docker run -d --name mysql8&nbserp;-p 3306:3306 -v /data/mysql8/config:/etc/mysql/conf.d -v /data/mysql8/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql # 以上的命令可以参考:https://hub.docker.com/_/mysql,里面有详细介绍
为什么要知道这么多路径或者参数
每个中间件或者一个数据库容器,他可能需要有很多配置,例如密码,持久化文件的路径等等。那我们怎么知道路径是什么:
可以进hub.docker.com找到自己需要的容器然后看文档 进容器找了(这个方法有点笨,笔者一开始就是这么找到的。)
网络
容器之间怎么进行通讯
容器虽然是能相互通讯的,但是容器每次重启ip都跟上一次不一样,所以这样通讯会很复杂。
示范 # 先拉个CentOS镜像下来 docker pull centos #&n基本bsp;创建个容器 docker run -d -it --name centos1 centos docker run -d -it --name centos2 centos docker inspect centos1_id
截取一些容器信息下来:
[ { "NetworkSettings": { "Networks": { "bridge": { &nbs使用p; "IPAMConfig": null, "Links": null, "Aliases": null, "NetworkID": "9e7ed6d29ca3474de04409833e39b7c7965c7c命令63d3a1f509886a7a998e4825f8", "EndpointID": "41230bf523fac8fa4933989d98baaaa7655fba5c5dadd14e63839ffe868ed3f8", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.4", &Donbsp; "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, &nckbsp; "MacAddress": "02:42:ac:11:00:04", "DriverOpts": null } } } } ] docker inspect centos2_id er; [ { "NetworkSettings": { "Networks": { "bridge": { "IPAMConfig": null, "Links":&基本nbsp;null, "Aliases": null, "NetworkID": "9e7ed6d29ca3474de04409833e39b7c7965c7c63d3a1f509886a7a998e4825f8", "EndpointID": "8ae77d46887c795983ee7a8fb96951d05e236b4ca4b4caa5d5964f892使用e18a476", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.5", "IPPrefixLen": 16,  命令;"IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:11:00:05", &nbDosp; "DriverOpts": null } } } } ]
以上centos1 ip为172.17.0.4
以上centos2 ip为172.17.0.5
解决问题 docker network create centos-network docker run -d -it --network centos-network --name centos3 centos docker run -d ck-it --network centos-network --name centos4 centos docker exec -it centos3_id /bin/bash ping centos4 # 所以当创建了一个network后 容器都能加入到这个网络里面,很方便
这样就可以解决每次容器重启后ip不一致问题。
小结
其实在刚使用容器的时候会很麻烦:
不知道Docker的命令和容器需要的参数 每次都要上官网找下有什么参数或者百度,但相比每次下载文件下来,进去配置省很多力气,并且配置一次保存好用过的命令,以后都可以用了,不需要再重复去改很多东西 其实在一些小型公司,没有专业的运维的话尽量不要在生产环境上使用Docker,不然真的出现问题的话会很头疼,不仅仅要维护项目,还要维护Docker。
- ·标签: 追觅
- ·不孕不育的新曙光:AI
- ·Scale AI 起诉前员工与新雇主 Mercor:指控盗取百份机密文件牵涉核心客户争夺
- ·奇瑞墨甲机器人实现 L3 级别!未来将着眼于多个行业应用
- ·Qwen3-Omni 即将登场:端侧跨模态模型再升级,PR 已提交 Transformers 库
- ·天翼云2023年上半年营收459亿元 同比增长63.4%
- ·标签: 荣耀Power2 天玑8500 格力空调 雷军
- ·标签: 3DMark 红魔11Pro 红魔11Pro+ 跑分作弊
- ·消息称Facebook正自主研发新的机器学习芯片
- ·准备好餐厅机器人了吗?它们也许就是答案
- ·标签: 华为云
- ·标签: 亿咖通 FlymeAuto 星纪魅族 吉利控股
- ·标签: GoogleI/O2026 Gemini3.5Flash TPU8i Antigravity2.0
- ·AI 模型模拟赌博行为,显示出成瘾迹象
- ·标签: 赛力斯 蓝电科技 赛豆科技 火山引擎
- ·OpenAI 推出 Euphony:一款开源的 Harmony 数据可视化工具
- ·标签: 问界 鸿蒙智行 赵长江 H200
- ·阿里云史上最大规模降价,张勇称要以低用云成本扩大市场空间
- ·法国AI独角兽Mistral AI估值飙升至140亿美元
- ·标签: 中科闻歌 通用决策大模型 1956.HK 决策智能
- ·小米开源首个原生端到端语音大模型 Xiaomi-MiMo-Audio
- ·百度ALL IN AI:李彦宏现场签发百万美元巨奖,直言AI大模型已达“临界点”
- ·标签: 京东百亿超市 京东超市 百亿补贴 日用快消品
- ·标签: LG 高通骁龙 AI座舱 CES2026
- ·标签: 曹操出行 Robotaxi 阿布扎比 吉利控股
- ·Eightco Holdings 更名为 ORBS,专注于 AI 与人类身份验证
- ·https://www.lgnewsroom.com/search/小旋风万能蜘蛛池【tg:seogoogle987】,itB
- ·https://dict.naver.com/dict.search?dicQuery&query=小旋风万能蜘蛛池【tg:seogoogle987】n7Y
- ·https://www.ushmm.org/search/results.php?q=小旋风万能蜘蛛池【tg:seogoogle987】,uiD
- ·https://www.usslexington.com/?action=QUERY&s=小旋风万能蜘蛛池【tg:seogoogle987】,Nxh
- ·https://www.tailoy.com.pe/catalogsearch/result/?q=小旋风万能蜘蛛池【tg:seogoogle987】,HFN
- ·https://www.posten-portal.de/search?query=小旋风万能蜘蛛池【tg:seogoogle987】,EQr
- ·https://www.mi.com/search?keyword=小旋风万能蜘蛛池【tg:seogoogle987】,XeX
- ·https://www.jusoen.com/addreng.asp?p1=小旋风万能蜘蛛池【tg:seogoogle987】q6F
- ·https://www.mingwai.edu.hk/?langzh-hant&s=小旋风万能蜘蛛池【tg:seogoogle987】,prX
- ·https://wydden.com/?ID=r8w9WMSKWkOcmiaFWaUv0dzMdqZWfKtF&s=小旋风万能蜘蛛池【tg:seogoogle987】,34p
- ·苹果重拳整顿 App Store 支付:明星应用 Cal AI 违规被下架
- ·PaaS是什么?什么定位?有什么优势?
- ·标签: AndrejKarpathy Anthropic ClaudeCode vibeCoding
- ·云计算开发:Python内置函数-help()函数详解
- ·云计算服务Snowflake CEO:疫情彻底改变了办公室对企业的作用
- ·标签: 智能手机 PC 存储涨价 AI
- ·新华三发布“一体·两中枢”全新智慧计算体系
- ·标签: 富途控股 证监会罚款 PantherTrade VATP牌照
- ·世界各地的优秀公司都在招聘的人工智能研究职位
- ·两位20岁辍学生打造Turbo AI:500万用户的AI笔记神话
