Liunx下安装和使用Docker
Docker介绍
Docker是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。
Docker优点
简化程序
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
避免选择恐惧症
如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
节省开支
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
Docker安装
Docker 要求 CentOS 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
1、通过 uname -r 命令查看你当前的内核版本
uname -r
2、 使用 root 权限登录 Centos。确保 yum 包更新到最新。
yum -y update
3、 卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine
4、 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
5、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6、 可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
7、 安装docker
sudo yum install -y docker-ce
#由于repo中默认只开启stable仓库,故这里安装的是最新稳定版
8、 启动并加入开机启动
systemctl start docker
systemctl enable docker
9、 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
镜像相关命令
1、搜索镜像
docker search java
可使用 docker search命令搜索存放在 Docker Hub(这是docker官方提供的存放所有docker镜像软件的地方,类似maven的中央仓库)中的镜像。执行该命令后, Docker就会在Docker Hub中搜索含有 java这个关键词的镜像仓库。
Docker Hub 官网https://hub.docker.com/search?q=java&type=image
2、下载镜像
docker pull java:8
使用命令docker pull命令即可从 Docker Registry上下载镜像,执行该命令后,Docker会从 Docker Hub中的 java仓库下载最新版本的 Java镜像。如果要下载指定版本则在java后面加冒号指定版本
3、列出已下载的镜像
docker images
4、删除镜像
docker rmi java
根据imageId删除镜像—> docker rmi d23bdf5b1b1b
杀死正在运行的容器—>docker rm -f f48fb732c744
启动容器
docker run -d -p 81:80 nginx
在本例中,为 docker run添加了两个参数,含义如下:
-d 后台运行
-p 宿主机端口:容器端口 #开放容器端口到宿主机端口
阿里镜像加速
详细参考: https://cr.console.aliyun.com/cn-hangzhou/mirrors
构建自己的docker镜像
-
首先我们准备一个spring boot项目并打成jar包
-
我们将jar包上传到linux服务器/usr/local/dockerapp目录
mkdir /usr/local/dockerapp
-
在jar包所在目录创建名为Dockerfile的文件
注意:最好在jar包所在目录 否则要指定目录
vi Dockerfile
###指定java 8环境镜像
FROM java:8
###复制文件到容器demo-springboot
ADD demo-0.0.1-SNAPSHOT.jar /demo-springboot.jar
###声明启动端口号
EXPOSE 8081
###配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","/demo-springboot.jar"]
构建镜像
docker build -t docker-springboot-1.0.0 .
表示把 docker-springboot-1.0.0加入docker images中 后面的"."表示使用当前目录下的Dockerfile文件
Step 1/4 : FROM java:8
---> d23bdf5b1b1b
Step 2/4 : ADD demo-0.0.1-SNAPSHOT.jar /demo-springboot.jar
---> Using cache
---> 89dbcf007320
Step 3/4 : EXPOSE 8081
---> Using cache
---> 9a40983b8288
Step 4/4 : ENTRYPOINT ["java","-jar","/demo-springboot.jar"]
---> Using cache
---> 82fa70217bcb
Successfully built 82fa70217bcb
Successfully tagged docker-springboot-1.0.0:latest
出现以上效果就是成功了 我们来访问一下
成功