docker部署应用

docker部署应用

docker部署应用 ,docker里能部署应用。部署方法:1、利用“docker search…”搜索指定应用镜像;2、利用“docker pull…”拉取指定应用镜像;3、利用“mkdir”和cd命令创建挂载目录;4、利用“docker run…”创建容器。

docker部署应用

docker里能部署应用

容器化部署应用程序。通常,开发工作流包括如下几点:

1、首先创建Docker镜像,为应用程序的每个组件创建和测试单个容器。

2、将容器和所支持的基础设施组装成一个完整的应用程序,可以用Docker stack file或者Kubernetes的YAML来实现。

3、测试、共享和部署完整的容器化应用程序。

在本篇幅中,我们将集中于此工作流的步骤1:基于现有的容器来创建镜像。请记住,Docker镜像捕获了容器化进程将在其中运行的私有文件系统;我们需要创建一个镜像,其中正好包含我们的应用程序需要运行的内容。

容器化开发环境比传统开发环境更容易设置,一旦您学习了如何构建镜像,我们将在下面讨论。这是因为容器化的开发环境会将应用程序所需的所有依赖项隔离在Docker镜像中;除了Docker之外,不需要在开发计算机上安装任何东西(即开发环境的部署仅依赖于Docker镜像)。这样,您就可以轻松地为不同的堆栈开发应用程序,而无需更改开发机器上的任何环境。

 

MySQL部署

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#搜索MySQL镜像

docker search mysql

#拉取MySQL镜像

docker pull mysql:5.6

#创建挂载目录

mkdir ~/mysql

cd ~/mysql

#创建容器

docker run -id \

-p 3306:3306 \

--name=c_mysql \

-v $PWD/conf:/etc/mysql/conf.d \

-v $PWD/data:/var/lib/mysql \

-v $PWD/logs:/logs \

-e MYSQL_ROOT_PASSWORD=123456 \

mysql:5.6

#进入容器

docker exec -it c_mysql

#尝试Navicat连接

...

 

Tomcat部署

1

2

3

4

5

6

7

8

9

10

11

12

13

#搜索Tomcat镜像

docker search tomcat

#拉取Tomcat镜像

docker pull tomcat

#创建挂载目录

mkdir ~/tomcat

cd ~/tomcat

#创建容器

docker run -id \

-p 8080:8080 \

--name=c_tomcat \

-v $PWD:/usr/local/tomcat/webapps \

tomcat

 

Nginx部署

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#搜索Nginx镜像

docker search nginx

#拉取Nginx镜像

docker pull nginx

#创建挂载目录

mkdir ~/nginx

cd ~/nginx

#创建容器

docker run -id \

-p 80:80 \

--name=c_nginx \

-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \

-v $PWD/logs:/var/log/nginx \

-v $PWD/html:/usr/share/nginx/html \

nginx

 

 

docker与虚拟机的区别是什么

docker与虚拟机的区别:1、docker启动快速属于秒级别,而虚拟机通常需要几分钟去启动;2、性能损耗不同,docker需要的资源更少;3、隔离性不同,docker属于进程之间的隔离,隔离性较弱,而虚拟机可以实现系统级别的隔离。

 

虚拟机:虚拟机是通过Hypervisor(虚拟机管理系统,常见的有VMWare workstation、VirtualBox),虚拟出网卡、cpu、内存等虚拟硬件,再在其上建立虚拟机,每个虚拟机是个独立的操作系统,拥有自己的系统内核。

容器:容器是利用namespace将文件系统、进程、网络、设备等资源进行隔离,利用cgroup对权限、cpu资源进行限制,最终让容器之间互不影响,容器无法影响宿主机。

 

docker的优势

运行在容器上的docker的程序,直接使用的都是宿主机的硬件资源,因此在cpu、内存、利用率上,Docker将会在效率上具有更大的优势

Docker直接利用宿主机的系统内核,避免了虚拟机启动时所需要的系统引导时间和操作系统运行的资源消耗,利用Docker能够在几秒钟之内启动大量的容器,是虚拟机无法办到的。快速启动低资源消耗的优点,使Docker在弹性云平台自动运维系统方面具有很好的应用场景。

容器的启动时间是秒级的,大量节约开发、测试、部署的时间。还有一个非常关键的点,就是Docker能够高效地部署和扩容,Docker容器几乎可以在任意平台上运行,包括虚拟机、物理机、公有云、私有云、个人电脑、服务器等,这种兼容性,可以让用户把一个应用程序从一个平台直接迁移到另外一个平台。

但是,虚拟机的安全性比容器好一些,docker与宿主机共享内核、文件系统等资源,更有可能对其他容器、宿主机造成影响。

 

区别

1、启动速度不同

docker 启动快速属于秒级别。虚拟机通常需要几分钟去启动。

2、性能损耗不同

docker 需要的资源更少,docker 在操作系统级别进行虚拟化,docker 容器和内核交互,几乎没有性能损耗,性能优于通过 Hypervisor 层与内核层的虚拟化。

3、系统利用率不同

docker 更轻量,docker 的架构可以共用一个内核与共享应用程序库,所占内存极小。同样的硬件环境,Docker 运行的镜像数远多于虚拟机数量,对系统的利用率非常高。

4、隔离性不同

与虚拟机相比,docker 隔离性更弱,docker 属于进程之间的隔离,虚拟机可实现系统级别隔离。

5、安全性不同

docker 的安全性也更弱。Docker 的租户 root 和宿主机 root 等同,一旦容器内的用户从普通用户权限提升为 root 权限,它就直接具备了宿主机的 root 权限,进而可进行无限制的操作。虚拟机租户 root 权限和宿主机的 root 虚拟机权限是分离的,并且虚拟机利用如 Intel 的 VT-d 和 VT-x 的 ring-1 硬件隔离技术,这种隔离技术可以防止虚拟机突破和彼此交互,而容器至今还没有任何形式的硬件隔离,这使得容器容易受到攻击。

6、可管理性不同

docker 的集中化管理工具还不算成熟。各种虚拟化技术都有成熟的管理工具,例如 VMware vCenter 提供完备的虚拟机管理能力。

7、可用和可恢复性不同

docker 对业务的高可用支持是通过快速重新部署实现的。虚拟化具备负载均衡,高可用,容错,迁移和数据保护等经过生产实践检验的成熟保障机制,VMware 可承诺虚拟机 99.999% 高可用,保证业务连续性。

8、创建、删除速度不同

虚拟化创建是分钟级别的,Docker 容器创建是秒级别的,Docker 的快速迭代性,决定了无论是开发、测试、部署都可以节约大量时间。

9、交付、部署速度不同

虚拟机可以通过镜像实现环境交付的一致性,但镜像分发无法体系化;Docker 在 Dockerfile 中记录了容器构建过程,可在集群中实现快速分发和快速部署;

 

参考链接:docker与虚拟机的区别是什么-Docker

友情链接:https://www.ccwisdom.com/industrynews/