前言
在企业的开发过程中,我们一般会接触多个环境。开发环境(DEV)、测试环境(UAT)、生产环境(PROD)、验收测试环境(UAT)等。在工作中以及学习中其实很多时间是花费在环境的搭建中,学习的过程中,我们需要自己从0开始,很多同学在搭建环境的过程中出现很多问题,环境搭建不成功,导致没办法继续后面的学习。工作过程中会出现,明明在自己本地环境甚至是测试环境都可以正常运行的程序,发布到另一个环境后就是无法运行。这个时候极有可能是因为环境导致的问题。
以上的问题归根结底都是因为环境造成的,而docker
就是解决因为环境造成的一些列问题。Docker是世界领先的软件容器平台,开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用 Docker 可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。
本篇文章主要是介绍如何在Centos7系统上安装docker以及docker的一些基本使用。
开始安装
卸载旧版本
首先卸载掉服务器中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
配置docker地址
设置安装docker时的下载地址
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
或者
sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum缓存
sudo yum makecache fast
执行安装命令
安装最新版本的Docker引擎和containerd
sudo yum install docker-ce docker-ce-cli containerd.io
安装指定版本的docker引擎和containerd
sudo yum install -y docker-ce-18.09.7 docker-ce-cli-18.09.7 containerd.io
启动Docker
sudo systemctl start docker // 设置开机自启 sudo systemctl enable docker
查看版本信息
sudo docker version
配置镜像加速器
默认的镜像是从国外的地址进行下载。因为某些原因,访问国外的资源很慢而且可能失败,所以需要配置国内的镜像地址,这样拉取镜像的时候就会快一些。
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://m6wt1u9u.mirror.aliyuncs.com"] } EOF
或者
vi /etc/docker/daemon.json { "registry-mirrors": [ "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn" ] }
重启docker
sudo systemctl daemon-reload sudo systemctl restart docker
docker常用命令
查看版本号
docker version
常看相信信息
docker info
帮助命令
docker --help 或者 docker help 或者指定查看命令 docker run --help
查看本地镜像列表
docker images
拉取远程镜像
docker pull hello-world # hello-world 是具体镜像的名字
搜索远程仓库中的镜像
docker search tomcat
运行镜像创建容器
docker run --name="mycentos" -it centos:latest 交互式启动,即启动并进入容器的Linux环境 或者 docker run -d --name="mytomcat" tomcat:7 后台启动
进入容器
docker exec -it 8edd4b5a3ba1 /bin/bash # 8edd4b5a3ba1是具体的容器id
退出容器
exit 退出并关闭容器 或者 Ctrl+p+q 退出不关闭容器
查看启动容器
docker ps
停止容器
docker stop mycentos 或者 docker kill mycentos
以上是对docker的安装的步骤说明。最后也简单列出了几个基础命令,以便在docker安装成功后进行功能的验证测试。
DockerFile
Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。
指令
FROM:基础镜像,当前新镜像是基于哪个镜像的
FROM centos
MAINTAINER:镜像维护者的姓名和邮箱地址
MAINTAINER description 后期版本用 LABEL代替
RUN:容器构建时需要运行的Linux命令
RUN yum install -y vim
EXPOSE:容器对外暴露的端口号
EXPOSE 8080
WORKDIR:进入容器终端时默认的目录
WORKDIR /usr/local/tomcat
ARG:设置编译竟像时加入的参数
ARG JAR_FILE SpringBoot项目打包镜像时pom.xml里面的标签的值
ENV:设置容器的环境变量
ENV JAVA_HOME /usr/local/java
ADD:将宿主机目录下的文件拷贝到镜像目录并解压
ADD /opt/spring-boot.jar /tmp
COPY:将宿主机目录下的文件拷贝到镜像目录
COPY:/opt/spring-boot.jar /tmp Springboot项目优先选用COPY,因为不需要解压
VOLUME:容器数据卷,用于数据保存和持久化工作
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD:容器启动时要运行的命令,只有最后一个生效,会被参数行替代
CMD ["java","-jar","spring-boot.jar]
ENTRYPOINT:容器启动时要运行的命令,参数行命令是追加
ENTRYPOINT ["java","-jar","spring-boot.jar]