一、认识docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
二、Docker的应用场景
Web 应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应用。
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
三、Docker 的优点
Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
1、快速,一致地交付您的应用程序
Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。
容器非常适合持续集成和持续交付(CI / CD)工作流程,请考虑以下示例方案:
您的开发人员在本地编写代码,并使用 Docker 容器与同事共享他们的工作。
他们使用 Docker 将其应用程序推送到测试环境中,并执行自动或手动测试。
当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。
测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。
四、好了简单介绍了下docker,下面进入正题
1、linux系统centos7.2 作为宿主机
2、安装docker容器
步骤:
2.1、安装需要的依赖包--命令:sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.2、设置阿里云镜像源--命令:sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.3、安装 Docker-CE--命令:sudo yum install docker-ce
2.4、启动docker服务--命令:service docker start
好了到这里docker容器已经下载安装好了,下面就可以在docker里安装需要的环境了。
3、docker基本命令
3.1、设置docker开机自启动--命令:sudo systemctl enable docker
3.2、docker重启动--命令:docker restart docker容器名
3.2、查看运行的容器--命令:docker ps 【正在运行的docker容器】
3.3、查看所有的容器--命令:docker ps -a【包含已经停止的容器】
3.4、指定容器启动--命令:docker start -i docker容器名
3.5、删除docker容器--命令:docker rm docker容器名
3.6、创建并启动docker容器--命令:docker run -p 0.0.0.0::8888:80 -it --name=sx centos /bin/bash
此处说明:设置docker容器端口映射四种方式:
3.6.1、docker run -p 80 -i -t centos /bin/bash 【该方式指定容器端口-宿主机端口随机】
3.6.2、docker run -p 8080:80 -i -t centos /bin/bash【该方式指定宿主机端口:容器端口】
3.6.3、docker run -p 0.0.0.0:80 -i -t centos /bin/bash 【该方式指定宿主机IP:容器端口】
3.6.4、docker run -p 0.0.0.0:8888:80 -i -t centos /bin/bash 【该方式指定宿主机IP:端口:容器端口】常用这种方式
通过3.6.4命令创建好容器后,外部可以通过访问宿主机IP:8080端口映射到docker容器的80端口。
3.7、守护式容器快捷退出键:CTRL+Q CTRL+P【此快捷键退出后,程序后台正常运行】
3.8、docker利用iptables防火墙技术实现用户IP权限访问。
3.9、查看docker信息--命令:docker inspect docker容器名
3.10、进入运行的docker容器--命令:docker attach docker容器
3.11、Linux与docker之间的文件传输--命令:
3.11.1:--宿主机Linux文件复制到容器docker中的命令:docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
示例:docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js
3.11.2--docker容器复制到宿主机Linux中的命令:docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
示例:docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt
3.12、离线下载docker镜像复制到另一台机器上
示例命令:打包镜像:docker save +镜像名 > 下载的路径/打包名称.tar(.tar包)
复制到另一台名:docker load < .tar包的位置
3.13、删除镜像名:docker rmi +镜像ID
3.14、查看所有TCP端口--命令:netstat -ntlp
4、docker容器部署vue前端web项目
4.1、进入docker容器:docker attach sx【docker容器名】 如图:
a.安装需要的环境,docker默认没有vim编译器--yum install vim
b.安装nginx--yum install nginx
c.窗口文件夹用于存放web项目--mkdir /var/webapps/html
d.修改nginx的nginx.config配置文件路径,改为项目的/var/webapps/html/dist
e.启动nginx--命令容器内:nginx。启动后外部可通过宿主机的ip:8888[上面设置的]访问了。