Docker企业级开发

首先我们先了解一下什么是虚拟化

在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网 络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好 的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚 拟化资源包括计算能力和资料存储。

在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网 络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好 的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚 拟化资源包括计算能力和资料存储。

那什么是docker呢?

   docker就是容器的意思,嗯~ 其实说到底,docker和虚拟机的区别就在于,docker占用的体积小,然后启动速度还快,它本身作为一个容器,可以封装很多东西,比如要安装redis,docker可以直接拉取镜像,然后创造一个容器,让redis运行起来,省去了安装redis的步骤,其实这个只是docker的一小部分优越性,docker更好地是为了让项目交付的时候更好地上线,它作为一个容器可以很好地统一版本。

Docker的安装

1.先将yum包更新到最新,这个是在linux系统下的

yum update

2.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

3. 设置yum源为阿里云

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/dockerce.repo

4.安装docker

yum -y install docker-ce

5.安装过后可以查看docker的版本

docker -v

设置USTC的镜像

ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。

我们先创建一个路径

mkdir -p /etc/docker
vim /etc/docker/daemon.json

然后输入以下内容

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

至此docker的安装就已经完成了

我们学习一下docker的基本命令,子月的docker是安装在centos7版本下的,centos的版本不一样,一些命令是会有一些差距的,这个曾经让子月很头疼。大家也要注意。

Docker的启动

systemctl start docker

Docker的停止

systemctl stop docker

Docker的重启

systemctl restart docker

Docker镜像的相关命令

查看镜像

docker images

假如你需要一个redis的镜像就可以进行搜索

docker search redis

这里我们就以redis的镜像和容器启动为例子进行演示,之前也说过要出一个redis的安装的,这里我们把docker和redis结合在一起。

redis镜像的拉取,其余镜像也是同样的命令。

// 当不指定版本的时候,默认拉取最后的版本
docker pull redis

删除镜像

docker rmi redis

对吧,现在我们有了镜像,如果要使用redis,镜像是要和容器相结合的。

容器的相关命令

//查看正在运行的容器
docker ps
//查看所有的容器
docker ps -a

这里我们使用后台线程的方式创建容器

docker run -di --name=redis -p 6379:6379 redis
-i :表示运行容器
-t :表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-v :表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v 做多个目录或文件
映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d :在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t
两个参数,创建后就会自动进去容器)。
-p :表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

进入容器

docker exec -it redis /bin/bash

要是运行redis的话就是

docker run redis

简单吧,就这么简单的几步,redis就安装好了。

为了让项目更好地进行交付的话,就可以使用DockerMaven插件,这个插件的使用其实和DockerFile是一样的,也是基于一个镜像,创造一个新的镜像。

首先需要先进行配置,让主机的docker可以进行被远程访问

vim /lib/systemd/system/docker.service
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

然后再刷新配置

systemctl daemon-reload
systemctl restart docker
docker start registry

假如我们有一个项目,想要打包放到linux上,就需要在配置依赖的时候加上如下配置。

<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<!--docker的maven插件,官网:https://github.com/spotify/docker‐maven‐plugin-->
			<plugin>
				<groupId>com.spotify</groupId>
				<artifactId>docker-maven-plugin</artifactId>
				<version>1.1.0</version>
				<executions>
					<execution>
						<id>build-image</id>
						<phase>package</phase>
						<goals>
							<goal>build</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<imageName>test/${project.artifactId}:${project.version}</imageName>
					<dockerHost>http://192.168.234.200:2375</dockerHost>
					<baseImage>jdk1.8</baseImage>
					<entryPoint>["java", "-jar", "-Dspring.profiles.active=dev","/${project.build.finalName}.jar"]
					</entryPoint>
					<resources>
						<resource>
							<targetPath>/</targetPath>
							<directory>${project.build.directory}</directory>
							<include>${project.build.finalName}.jar</include>
						</resource>
					</resources>
				</configuration>
			</plugin>
		</plugins>
	</build>

然后点击项目中的那个package就好了。然后在虚拟机里面就会发现多了一个镜像,这个镜像就是你构造的。 然后以容器启动,再到浏览器里面访问就可以了。

记得挂载上端口(就是这个项目的端口 -p)

子月这里补充一点docker里面有着一个私有仓库,也是以镜像的形式存在的,可以进行拉取和推送,要是别人想从私有仓库里进行拉取镜像,需要先进行设置,进行对私有仓库的信任。

私有仓库的有关命令

//拉取私有仓库镜像
docker pull registry
//启动私有仓库容器
docker run -di --name=registry -p 5000:5000 registry
//打开浏览器输入地址http://192.168.234.200:5000/v2/_catalog看到 {"repositories":[]} 表示私有仓库搭建成功
并且内容为空

进行信任设置

vim /etc/docker/daemon.json
//添加以下内容 注意这里要换成自己的虚拟机的静态IP
{"insecure-registries":["192.168.234.200:5000"]}
//重启docker
systemctl restart docker
// 私有仓库镜像上传  标记此镜像为私有仓库的镜像 先给要上传的镜像打上一个标签
docker tag jdk1.8 192.168.234.200/jdk1.8
//然后启动私有仓库
docker start registry
// 进行上传
docker push 192.168.234.200:5000/jdk1.8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值