Docker基本使用命令

前言

刚看别人使用Docker的时候有很多不解,为什么要用Docker,Docker怎么用?Docker配置为什么这么难?为什么网络访问不通?等等因素阻碍了笔者学习Docker?其实笔者也很笨,有很多思考不清晰的点。顺便也分享下。
学时疑惑:
Q:我一套服务为什么不放在一个容器里面(Java、MySQL、Nginx、Redis等)?
A:因为既要维护容器内网络,又要维护端口等等之类的东西,Docker就是为了快速搭建环境而生的,而且Docker最好也是一个服务一个容器,这样好打理。
Q:Docker能放到生产环境吗?
A:在公司没有专门的运维团队情况下,不建议使用Docker部署的环境作为生产环境,因为不仅仅要维护项目和中间件,Docker或者Kubernetes出现问题后,还要解决这些问题,也就是还要解决Docker的问题。如果在没有专门运维团队的情况下,最好使用某里云的服务,例如RDS,SLB等,最起码别人还会帮你维护你的数据库和服务。
Docker基本使用命令

基本命令

下载镜像
Docker基本使用命令
运行镜像
Docker基本使用命令
进入容器
第一种(不推荐,当退出容器使用exit命令时,会停止这个容器):Docker基本使用命令
第二种:Docker基本使用命令
暂停容器Docker基本使用命令
启动容器Docker基本使用命令
查询容器列表Docker基本使用命令
run和start的区别:
  • run是创建一个新的容器
  • start是把已经创建好的容器启动
查看容器信息Docker基本使用命令

挂载

挂载介绍
容器里面的文件都是在容器内部,而跟你当前电脑是没有关系的,如果删除了容器怎么办?但是资料又想保存就像MySQL一样,我只是换一台电脑就要把整个容器复制过去,太麻烦了!所以需要把容器的文件跟当前主机文件作为一个映射。
命令教程
参数-v宿主机路径:容器路径Docker基本使用命令
为什么要知道这么多路径或者参数
每个中间件或者一个数据库容器,他可能需要有很多配置,例如密码,持久化文件的路径等等。那我们怎么知道路径是什么:
  • 可以进hub.docker.com找到自己需要的容器然后看文档
  • 进容器找了(这个方法有点笨,笔者一开始就是这么找到的。)

网络

容器之间怎么进行通讯
容器虽然是能相互通讯的,但是容器每次重启ip都跟上一次不一样,所以这样通讯会很复杂。
示范

Docker基本使用命令

截取一些容器信息下来:Docker基本使用命令
Docker基本使用命令
  • 以上centos1 ip为172.17.0.4
  • 以上centos2 ip为172.17.0.5

解决问题Docker基本使用命令

这样就可以解决每次容器重启后ip不一致问题。

小结

其实在刚使用容器的时候会很麻烦:
  • 不知道Docker的命令和容器需要的参数
  • 每次都要上官网找下有什么参数或者百度,但相比每次下载文件下来,进去配置省很多力气,并且配置一次保存好用过的命令,以后都可以用了,不需要再重复去改很多东西
  • 其实在一些小型公司,没有专业的运维的话尽量不要在生产环境上使用Docker,不然真的出现问题的话会很头疼,不仅仅要维护项目,还要维护Docker
原文链接:https://juejin.cn/post/6974427129748389902
转自:分布式实验室

 

相关新闻