【docker入门】保姆级docker入门-在centos7下手把手搭建环境并演示项目部署

Docker的安装与使用

本文能完成:搭建docker环境;并使用docker容器部署Springboot应用。

本文参考文档:docker docs

安装docker

卸载旧版本

首先我们看一下机器上是否安装过docker:

yum list installed | grep docker

image-20200325171150815

我这里显示无,如果有的话执行下面命令卸载掉旧版本的docker:

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装所需的软件包

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

【docker入门】保姆级docker入门-在centos7下手把手搭建环境并演示项目部署_第1张图片

设置下载的镜像仓库

sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo

image-20200325172518602

下载并安装docker

首先查看可安装的docker各版本列表:

yum list docker-ce --showduplicates | sort -r

【docker入门】保姆级docker入门-在centos7下手把手搭建环境并演示项目部署_第2张图片

选择一个版本进行安装:

sudo yum install docker-ce-18.06.1.ce

安装过程中,需要确认两次安装,最后安装成功后,输入

docker -v

【docker入门】保姆级docker入门-在centos7下手把手搭建环境并演示项目部署_第3张图片

docker就已经安装好了。

配置docker

systemctl start docker

启动docker以后,就会生成/etc/docker目录,没有启动的话没有这个目录。

再把docker设置为开机启动:

systemctl enable docker

image-20200325174926288

添加阿里云镜像加速地址

首先我们登陆阿里云,进入后台后:

【docker入门】保姆级docker入门-在centos7下手把手搭建环境并演示项目部署_第4张图片

然后把上面的地址配置docker到镜像地址:

vim /etc/docker/daemon.json

【docker入门】保姆级docker入门-在centos7下手把手搭建环境并演示项目部署_第5张图片

然后重启docker:

systemctl restart docker

重启过后,可以搜索一下镜像库里面的资源来看看,以jdk为例:

docker search jdk

【docker入门】保姆级docker入门-在centos7下手把手搭建环境并演示项目部署_第6张图片

可以拉取一个jdk8到本地:

docker pull openjdk:8-jdk-alpine

【docker入门】保姆级docker入门-在centos7下手把手搭建环境并演示项目部署_第7张图片

看到镜像库里面就有了这个jdk8的镜像了。

使用docker

制作docker镜像

首先在项目目录下新建一个Dockerfile文件:

vim Dockerfile

然后编写内容如下:

FROM openjdk:8-jdk-alpine 
ARG JAR_FILE 
COPY ${JAR_FILE} app.jar 
EXPOSE 8012 
ENTRYPOINT ["java","-jar","/app.jar"]

稍微解释一下这里的内容:From 指的是基础镜像;AGR 用来定义一个变量,接受外面传进来的值;COPY 拷贝文件到容器中去,不会主动解压;EXPOSE 容器映射的端口号;ENTRYPOINT 配置容器启动后执行的命令;

具体的dockerfile文件的详细配置解析可以参考:https://www.cnblogs.com/panwenbin-logs/p/8007348.html

这里就不展开详细说明了。

完成后jar包和Dockerfile是在同一目录下的:

image-20200326104545256

然后执行命令:

docker build --build-arg JAR_FILE=demoofjk-0.0.1-SNAPSHOT.jar -t demo:v0.0.1 .

【docker入门】保姆级docker入门-在centos7下手把手搭建环境并演示项目部署_第8张图片

docker images

image-20200326105137700

可以看到镜像已经存在仓库中了。

运行docker容器中的服务

docker run -di -p 8012:23333 demo:v0.0.1
然后查看docker容器
docker ps

image-20200326111040933

这里说明一下这个命令:

-di 表示后台运行

-p 8012:23333 表示机器上的8012端口映射到docker容器暴露的端口23333

后面 demo:v0.0.1 是镜像的name:tag

访问机器的8012端口:可以看到访问成功

【docker入门】保姆级docker入门-在centos7下手把手搭建环境并演示项目部署_第9张图片

好了,到这里就完成了docker的安装与基本的使用。后面会整合Jenkins实现自动化部署。

小结

使用到的docker镜像的相关命令

docker images  //查看本地仓库中镜像
docker search [镜像名称] //搜索镜像 例如 docker search openjdk
docker pull [镜像名字]  //远程拉取镜像到本地仓库 例如 docker pull openjdk:8-jdk-alpine
docker rmi -f [镜像名字] //删除本地仓库中的镜像 例如 docker rmi -f openjdk:8-jdk-alpine
docker build... //由于参数太多,请参考 https://www.runoob.com/docker/docker-build-command.html

使用到的docker容器的相关命令

docker run -di -p 8012:23333 demo:v0.0.1
docker ps //查看运行着的docker容器
docker ps -a //查看所有的docker容器
docker logs -f [容器名字或者id] //查看容器内应用日志 例如docker logs -f 331b32db2457
docker stop/start/restart [容器名字或者id] //停止、开启、重启容器
docker rm -f [容器名字或者id] //删除容器 docker rm -f 331b32db2457

你可能感兴趣的:(docker,docker,centos,java)