Docker学习
- 什么是Docker?
-> 用来装应用的容器
-> 是开源的,托管在github
-> 跨平台,支持Windows、Macos、Linux
- 了解Docker
(1) Docker思想
-> 集装箱
-> 标准化
- 运输方式
- 存储方式
- API接口
-> 隔离
(2) Docker解决了什么问题?
-> 本地环境运行没问题,生成环境运行出问题....(运行环境不一致的问题,它将所有依赖的软件打包集装箱运输到另一个环境)
-> 某个应用卡,导致系统都很卡(Docker解决了某个应用卡,其他应用不会被影响)
-> 双11来了,服务器撑不住了(Docker很快的部署好服务器所需的环境和启动,可以快速扩展,弹性伸缩)
- 走进Docker
Docker镜像(集装箱)
Docker容器(进程,虚拟机,文件系统)
Docker仓库
- hub.docker.com
- c.163.com
- Docker安装(linux)
安装过程:https://www.cnblogs.com/daishengda/p/9149621.html
- Docker镜像
docker pull [OPTIONS] NAME [:TAG] //拉取镜像,NAME是镜像名,必选;:TAG是指定的版本,可选
docker images [OPTIONS] [REPOSITORY[:TAG]] //查看本机有哪些镜像
docker run [OPTIONS] IMAGE [:TAG] [COMMAND] [ARG...] //运行镜像文件,IMAGE是镜像名字
注:如果不写地址,默认到docker官网上拉取镜像
步骤:
1、pull先通过本机的Docker Daemon找指定版本的镜像,如果找到不做任何操作,如果不存在,会到docker仓库找我们需要的仓库,如果找到了存在我们本地
2、docker run先通过本机的Docker Daemon检查本机是否存在该镜像,如果不存在则先pull再run
- Docker运行Nginx
Nginx
-> 持久运行的容器
-> 前台挂起 & 后台运行
-> 进入容器内部
步骤
(1)先到Docker仓库查找
阿里云:https://dev.aliyun.com/list.html
(2)拉取镜像
从镜像仓库拷贝的下载地址(阿里云下载不完整,所以到中国官方镜像加速)
docker pull registry.docker-cn.com/library/nginx //
(3)启动镜像
docker run registry.docker-cn.com/library/nginx //前台方式启动docker镜像
docker run -d registry.docker-cn.com/library/nginx //后台方式启动docker镜像
docker ps //查看启动的docker镜像
docker stop 348398 //停止docker,348是docker给的id开头相关的
(4)进入docker启动的镜像容器
docker exec -it 348 bash //进入容器,348是docker给的id开头相关的(-t是进入某个中断,-i保持开启)
注意:ps -ef 没反应解释:
docker容器相当于开辟了一个新的虚拟机,而这个虚拟机没有安装 ps命令
解决方法
1.apt-get update
2.apt-get install procps
*****切记:是在你的nginx容器里执行以上命令
docker网络
-> 网络类型
Bridge Host None
-> 端口映射
访问nginx
1、-p方式启动,设置主机端口和容器nginx开放端口
docker run -d -p 8080:80 registry.docker-cn.com/library/nginx //-p 8080:80,8080是主机端口,80是容器nginx开放端口
2、-P方式启动,开放所有端口映射到随机端口
docker run -d -P registry.docker-cn.com/library/nginx
- 制作自己的镜像
-> Dockerfile 怎么制作自己镜像,每一步操作是什么
-> docker build 执行Dockerfile给我们描述的事情
-> 以制作Java Web应用为例
1、因为JavaWeb需要tomcat容器,先去拉取tomcat和mysql镜像
docker pull registry.docker-cn.com/library/tomcat:latest
docker pull registry.docker-cn.com/library/mysql:latest
2、编辑Dockerfile文件
vim Dockerfile
3、构建docker
docker build -t jpress:latest . /构建,-t jpress:latest,名字和版本
4、运行自己制作好的镜像
(1)先启动mysql镜像
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=jpress registry.docker-cn.com/library/mysql
(2)启动自己制作好的镜像
docker run -d -p 8888:8080 jpress
5、问题
如果docker启动镜像老是出现以下问题,可以通过重启docker服务来解决
service docker restart