vs2022打包docker(vs2022打包exedll文件添加)

程序使用到动态库,如何打包程序的docker镜像

Docker 提供了一个可以运行你的应用程序的封套(envelope),或者说容器。它原本是 dotCloud 启动的一个业余项目,并在前些时候开源了。它吸引了大量的关注和讨论,导致 dotCloud 把它重命名到 Docker Inc。它最初是用 Go 语言编写的,它就相当于是加在 LXC(LinuX Containers,linux 容器)上的管道,允许开发者在更高层次的概念上工作。

Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了一个轻量级的虚拟环境。Docker 利用了 LXC, cgroups 和 Linux 自己的内核。和传统的虚拟机不同的是,一个 Docker 容器并不包含一个单独的操作系统,而是基于已有的基础设施中操作系统提供的功能来运行的。这里有一个 Stackoverflow 的答案,里面非常详细清晰地描述了所有 Docker 不同于纯粹的 LXC 的功能特性

Docker 会像一个可移植的容器引擎那样工作。它把应用程序及所有程序的依赖环境打包到一个虚拟容器中,这个虚拟容器可以运行在任何一种 Linux 服务器上。这大大地提高了程序运行的灵活性和可移植性,无论需不需要许可、是在公共云还是私密云、是不是裸机环境等等。

Docker 由下面这些组成:

1. Docker 服务器守护程序(server daemon),用于管理所有的容器。

2. Docker 命令行客户端,用于控制服务器守护程序。

3. Docker 镜像:查找和浏览 docker 容器镜像。

如何打包创建镜像和运行Docker容器及常用命令

1. 安装 Docker在开始前,我们首先得确保在Linux主机中已经安装了Docker。这里,我运行的是CentOS 7 主机,我们将运行yum管理器和下面的命令来安装Docker。# yum install docker# systemctl restart docker.service2. 创建 Dockerfile现在,Docker守护进程已经在运行中了,我们现在准备创建自己的Firefox Docker容器。我们要创建一个Dockerfile,在其中我们要输入需要的配置来创建一个可以工作的Firefox容器。为了运行 Docker 镜像我们需要使用最新版本的CentOS。要创建 Docker 镜像,我们需要用文本编辑器创建一个名为Dockerfile的文件。# nano Dockerfile

如何将应用打包成为 Docker 镜像

当想让一个容器做两件事情,或者使一个Docker镜像包含来自两个不同镜像的依赖库时,就需要知道每个镜像的Dockerfile。本文介绍了如何通过docker history命令来对Docker镜像进行反向工程,得到它们的Dockerfile,并组织到一个Dockerfile里然后build,从而实现想做的事情。

常言道,逗不要重复发明轮子!地

在使用Docker时,构建自己的镜像之前,最好在Docker Hub寻找一些可以直接使用的镜像做练习。把软件架构分布到一系列容器中,每一个容器只做一件事情,这样的效果非常好。构建分布式应用的最好的基石是使用来自Docker Hub的官方镜像,因为可以信任它们的质量。

在某些情况下,可能想让一个容器做两件不同的事情。而在另外一些情况下,可能想让一个Docker镜像包含来自两个不同镜像的依赖库。如果有每个镜像的Dockerfile,这是非常简单的。将它们组织到一个Dockerfile里然后build就行。

然而,大多数时间都在使用Docker Hub上准备好的镜像,不会有它们的源Dockerfile。我花时间找一个可以合并(或flatten)两个不同Docker镜像的工具,当然没有它们的Dockerfile。也就是说在找一个能做下面这件事的东西:

如何打包创建镜像和运行Docker容器及常用命

在Dockerfile所在目录执行

docker build -t 10.10.36.213/library/你的镜像名:版本 .

别忘了最后的点,用来指定Dockerfile的位置

build过程类似这样:

cos@controller ~/Dockerfile/eureka $ docker build -t 10.10.36.213/library/test:v1.0 .

Sending build context to Docker daemon 78.69 MB

Step 1 : FROM 192.168.16.100/jdk8:8u74

--- d84b155276a9

Step 2 : MAINTAINER jingchaosong jingchao.song@tendcloud.com

--- Using cache

--- 369126ee2c40

Step 3 : ADD eureka-server-1.1-SNAPSHOT.jar /root/

--- Using cache

--- cd3facb762b3

Successfully built cd3facb762b3

push镜像

docker push 10.10.36.213/library/你的镜像名:版本

如果出现push失败的情况,并且提示需要的登录,请使用以下命令login到私有镜像仓库

docker login 10.10.36.213

用户名admin

密码Harbor12345

email可以不填

run容器

直接以daemon方式运行

docker run -d --net=mynet 10.10.36.213/library/你的镜像名:版本 命令

--net=mynet是让docker调用我们自己的网络插件来分配IP地址,IP地址从我们自己配置的IP池里获取

查看启动的容器的IP地址可以用以下命令

docker inspect container_id | grep IPAddress

交互方式运行

docker run -it --net=mynet 10.10.36.213/library/你的镜像名:版本

docker run的时候可以加很多参数,如容器的资源配额限制、hostname、挂载本地目录、DNS等配置,请参看docker run --help

查看容器状态

查看正在运行的容器的状态

docker ps

查看所有容器(包括已经Exit容器的状态)

docker ps -a

删除容器

docker rm container_id

container_id只需要前几位字符就可以了,只要能够区别不同容器即可,不需要输入全部ID字段

强制删除容器

docker rm -f container_id

删除镜像

docker rmi image_id

进入容器内部

前提是必须是正在运行的容器

docker exec -it container_id /bin/bash

运行exit退出

查看容器详细信息

docker inspect container_id

可以看到容器的配置信息和挂载的本地目录、网络配置、状态等

docker部署前端和后端打包程序

docker启动命令:

nginx.conf修改为:

程序更新:每次只需要把前端vue打包程序更新到/data2/geovis/docker_nginx/nginx_share_dir下即可。

Dockerfile文件内容:

start.sh内容(最后一个jar包不能后台运行,否则容器会自动退出):

构建docker镜像

启动geovis-jar容器:

程序更新:每次只需要docker restart geovis-jar重启容器即可。

docker 打包镜像命令

title: docker 打包镜像命令

date: 2020/02/20 14:52

1、在 docker 中添加 harbor(或者其他私服)的地址

2、登录远程仓库

3、拉取私服的镜像到本地仓库

4、查看镜像 id,并进行打包

5、copy 到需要部署的机器上,载入镜像

361知讯网

本文链接:http://pdidw.com/vs/15804.html

发表评论

评论列表

还没有评论,快来说点什么吧~