Docker - 项目实践

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>:在容器里执行命令,并输出结果

 


版权声明:本文为fffwww_ET原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。