Docker认识
集装箱,便携的虚拟机应用容器,能够在容器内运行任何应用,且两两容器之间互不影响。
Docker用途
1.环境隔离
2.微服务定制
3.为客户演示,考一个Docker镜像即可。
Docker应用场景
不同的应用程序有不同的应用环境,使用Docker容器就不会造成应用环境冲突
本地环境/测试环境/生产环境不一样,同样的代码无法运行,使用Docker容器统一环境问题
web应用的自动化打包和发布,自动化测试和持续集成、发布
Docker使用
Docker搭建,基于centOS7。基于Linux安装Docker,yum安装和curl脚本安装
Dockerfile
配置文件,分为基础镜像/维护者信息/镜像操作/容器启动命令4个部分,使用Dockerfile自动构建镜像
镜像:容器的只读版本,方便存储和交流
CentOS启动Docker
systemctl start docker
Docker配置
安装成功后的Docker是“裸”Dokcer
Dokcer拉取tomcat/Ngnix等容器
把容器内的ngnix的80端口映射到8080端口
docker run -d -p 8080:80 nginx
使用多个Ngnix,如修改80端口映射到8081端口
docker run -d -p 8081:80 nginx
查看Dokcer容器Id
docker ps -a
部署
打包SpringBoot项目,打成jar包
在centOS 7 服务器放置Dockerfile 和jar包
生成镜像文件,进入本地Docker仓库
docker build -t docker
- -t 构建的镜像的tag
建立端口映射,运行
docker run -d -p 8080:8080 docker
docker常用命令
镜像管理
docker images:列出本地所有镜像
docker search <IMAGE_ID/NAME>:查找image
docker pull <IMAGE_ID> : 下载image
docker push <IMAGE_ID>:上传image
docker rmi <IMAGE_ID>:删除image
容器管理
ocker run -i -t <IMAGE_ID> /bin/bash:-i:标准输入给容器 -t:分配一个虚拟终端 /bin/bash:执行bash脚本
-d:以守护进程方式运行(后台)
-P:默认匹配docker容器的5000端口号到宿主机的49153 to 65535端口
-p <HOT_PORT>:<CONTAINER_PORT>:指定端口号
- -name: 指定容器的名称
- -rm:退出时删除容器
docker stop <CONTAINER_ID>: 停止container
docker start <CONTAINER_ID> : 重新启动container
docker ps - Lists containers.
-l:显示最后启动的容器
-a:同时显示停止的容器,默认只显示启动状态
docker attach <CONTAINER_ID> 连接到启动的容器
docker logs <CONTAINER_ID> : 输出容器日志
docker cp <CONTAINER_ID>:path hostpath:复制容器内的文件到宿主机目录上
docker rm <CONTAINER_ID>:删除container
docker rm `docker ps -a -q`:删除所有容器
docker kill `docker ps -q`
docker rmi `docker images -q -a`
docker wait <CONTAINER_ID>:阻塞对容器的其他调用方法,直到容器停止后退出
docker top <CONTAINER_ID>:查看容器中运行的进程
docker diff <CONTAINER_ID>:查看容器中的变化
docker inspect <CONTAINER_ID>:查看容器详细信息(输出为Json)
docker extc -it <CONTAINER> <COMMAND>:在容器里执行命令,并输出结果