欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker部署应用指南

程序员文章站 2022-04-19 10:20:27
...

Docker部署应用指南

一、Docker的安装

Docker的安装在不通操作系统下有不同的安装方式

1.win7、win8安装docker

win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ (没有安装git的则需勾选Git for Windows)

Docker部署应用指南

安装完成后桌面会有这三个程序

Docker部署应用指南

点击 Docker QuickStart 图标来启动 Docker Toolbox 终端,如果docker安装成功则会出现下图

Docker部署应用指南

(其中 【192.168.99.100】是VirtualBox中名字为【default】虚拟机的ip地址。)

2.win10安装docker

Docker for Windows分为企业版>教育版>专业版>家庭版。(家庭版的不能开启Hyper-V,所以最低要专业版)

如果系统不符合运行Docker for Windows的要求,则可以安装Docker Toolbox,Dockbox Toolbox使用Oracle Virtual Box而不是Hyper-V。

在控制面板>程序和功能>打开或关闭Windows功能勾选Hyper-V

然后在CMD下运行此命令开启Hyper-V

bcdedit /set hypervisorlaunchtype auto

这样就可以下载安装包了,在docker官网下载Docker for Windows https://www.docker.com/get-started

下载完进行安装启动,右下角会有小图标出现显示Docker Desktop is running 就说明docker启动好了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wnTJeKan-1584088770233)(C:\Users\51966\AppData\Roaming\Typora\typora-user-images\image-20200313142208712.png)]

3.linux下安装docker

* 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 

* 设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

* 安装 Docker-CE
yum install docker-ce

* 启动 Docker-CE
systemctl enable docker
systemctl start docker

二、制作docker镜像

1.通过dockerfile在本地制作镜像

创建一个文件夹,里面放入打包好的war或者jar包,还需放入docekrfile文件,然后通过docker bulid命令来制作镜像

Dockerfile文件:

FROM java:8

ADD blog-2.2.0.RELEASE.jar app.jar

ADD application.yml /

RUN bash -c 'touch /app.jar'

EXPOSE 8084

ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]

在dockerfile当前路径下输入命令 :docker build -t [镜像名称] [本地路径] 命令来制作镜像

 docker build –t mytest .

2.利用maven插件来进行制作镜像,并推送到远程仓库中(阿里云仓库)

在项目的pom.xml中加入插件信息,再配置maven的setting.xml在servers节点下添加阿里云仓库的账号信息。

pom.xmlr如下:

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
	<version>0.4.13</version>
	<configuration>
	<!--镜像名称-->
	<imageName>${docker.repostory}/${docker.registry.name}</imageName>
	<!--指定标签-->
	<imageTags>
	<imageTag>blog2</imageTag>
	</imageTags>
	<!-- 指定Dockerfile所在的路径 -->
	<dockerDirectory>./</dockerDirectory>
	<resources>
  		<resource>
            <targetPath>/</targetPath>
            <directory>${project.build.directory}</directory>
            <include>${project.build.finalName}.jar</include>
        </resource>
	</resources>
	<serverId>docker-aliyun</serverId>
	<registryUrl>${docker.repostory}</registryUrl>
	<pushImage>true</pushImage>
	</configuration>
</plugin>

maven的setting.xml

<server>
      <!--maven的pom中可以根据这个id找到这个server节点的配置-->  
      <id>docker-aliyun</id>
      <!--这里是在阿里云注册的账号-->
      <username>xxx</username>
      <!--这里是在阿里云注册的密码-->
      <password>xxx</password>
      <configuration>
            <!--这是在阿里云注册时填写的邮箱-->
            <email>aaa@qq.com</email>
      </configuration>
</server>

最后通过maven插件的docker build 命令

三、镜像的拉取、导入、导出

*镜像的拉取 //默认在docker Hub中拉取镜像
docker pull [镜像名称]:[镜像版本号]

docker pull registry.cn-hangzhou.aliyuncs.com/kinggrid/yypt:[镜像版本号] 

例:docker pull redis


*镜像的导出
docker save -o [.tar文件的名称] [镜像名称]  (导出镜像)

例: docker save -o images.tar myblog 
(docker export -o images.tar myblog (导出容器))


*镜像的导入

docker load -i images.tar   导入镜像
(docker import images.tar myblog (导出容器))

四、容器部署

*容器部署

docker run -d -p [宿主机的端口号]:[容器的端口号] -v [挂载的本地路径]:[容器内部路径] --name=[命名容器的名称] [镜像名] 
 
例:
docker run -d -p 8084:8084 -v "G:/dockerfile/application.yml":/application.yml --name=myblog myblog

相关标签: docker 容器