转载https://blog.csdn.net/wzsy_ll/article/details/82866627

1、为什么使用Docker(本人)

最近总是频繁的在新服务器发布项目, 每次发布都需要布置项目所需要的环境特别麻烦,而且还有一台机器需要两个环境的状况

例如:发布java web 项目而言 需要下载安装jdk 和tomcat 安装Docker后只需要几个命令就轻松搞定,还有两个环境的问题,我们有一台服务器需要发布两个java web项目 而有一个项目必须使用jdk1.7 而另一个必须用jdk1.8,这个使用Docker都可以轻松解决

2、Docker介绍

Docker里面有三个概念分别是:

镜像,仓库,容器

经过简单的安装我对这三个概念的理解大致如下:

以下为本人个人观点仅供参考!

容器:就说运行java web项目,首先需要有运行环境,而这个容器就是我们的运行环境

镜像:我把镜像理解为我们的操作系统,这个操作系统(镜像)运行起来后才会有我们程序运行的环境(容器)

仓库:这个仓库也就是我们下载操作系统(镜像)的地方,里面有各式各样的操作系统(镜像),redis,tomcat的镜像等等

接下来进行Docker的安装和简单的使用来体验一下使用Docker是不是很方便

3、Docker安装与启动

因为第一次使用Docker也不清楚哪个版本比较好,所以按照官网的提示安装了最新版本(以下内容来自官网,本人亲测安装成功)

1)Docker安装所需要CentOS7以上才可以安装

2)  安装所需的软件包

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

3)  设置 stable 镜像仓库:

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

4)  启用 edge 和 testing 镜像仓库:

  1.  
    $ sudo yum-config-manager --enable docker-ce-edge
  2.  
    $ sudo yum-config-manager --enable docker-ce-testing

5)  更新yum软件包索引:

$ sudo yum makecache fast
 

6)  安装Docker最新版本:

$ sudo yum install docker-ce
 

7)启动Docker:

$ sudo systemctl start docker
 

8)验证是否启动成功:

$ sudo docker run hello-world
 

4、Docker常用命令以及使用图解

1、拉取镜像

docker pull 镜像地址
 

阿里docker镜像地址:

https://dev.aliyun.com/search.html

以拉取tomcat镜像为例,点击搜索

这个也就是带有tomcat环境的操作系统,这个是完整的命令直接复制就行

docker pull registry.cn-hangzhou.aliyuncs.com/shuodao/tomcat-8.5.27
 

因为tomcat需要java环境所以下载会有一点慢

等待下载完成...

2、查看所有镜像

docker images
 

上图可以看到两个镜像,第一个是我们测试Docker是否成功安装的  第二个使我们下载好的tomcat镜像

3、运行镜像

docker run -d -p 本机端口:容器端口 镜像名称

-d:镜像在后台运行

-p指定本机与容器内部交互的端口 -P是随机开放一个端口与容器内部ID映射(这里不做演示)

运行tomcat镜像,我们把本机的80端口映射到容器的8080端口

docker run -d -p 80:8080 registry.cn-hangzhou.aliyuncs.com/shuodao/tomcat-8.5.27
 

我们访问一下看tomcat是否成功启动

tomcat主页已经显示证明服务正常启动了

4、查看正在运行的容器

docker ps 
 

5、进入到容器内部

docker exec -it 容器ID bash   (下面是我的容器ID 每个容器ID是不一样的 使用docker ps 查看一下)

docker exec -it a1a4eaba7dd4 bash
 

退出容器:输入exit

6、文件传输

如果我们想获取容器内tomcat的日志文件怎么办呢

容器 -----> 本机

docker cp ID全称:容器文件路径 本地路径

docker cp a1a4eaba7dd44db8a23701c2f7825a506381c7c889bb0702dd747ad521a809d0:/usr/tomcat/logs/catalina.out /usr/local/Docker/catalina.out
 

本机 -----> 容器 (这个就不演示了都差不多)

docker cp 本地文件路径 ID全称:容器路径

7、停止容器

docker stop 容器ID

docker stop a1a4eaba7dd4
 

我们再访问一下:

下面两个命令一会儿会说到:

8、删除容器

docker rm 容器id

9、删除镜像

docker rmi 镜像id

5、构建镜像并发布自己的项目

1、在/usr/local下创建Docker文件夹(随便的一个空的文件夹)

2、上传war包到这个文件夹

war包下载地址:https://pan.baidu.com/s/1R2d_C98A-EzlEibChQ1p7A 提取码: fuf4

3、创建Dockerfile文件

touch Dockerfile
 

3、编辑Dockerfile

vi Dockerfile
 

4、写入以下内容

  1.  
    #该镜像的父镜像 为 tomcat 镜像 这样我们就有了tomcat的环境
  2.  
    from registry.cn-hangzhou.aliyuncs.com/shuodao/tomcat-8.5.27
  3.  
     
  4.  
    #复制当前文件夹下的 war包 到镜像中tomcat的webapps目录
  5.  
    COPY TestDocker.war /usr/tomcat/webapps
  6.  
     
  7.  
    #去除容器内部中文乱码问题
  8.  
    ENV LANG C.UTF-8

5、构建镜像(还是在Docker文件夹 也就是Dockerfile所在文件夹)

docker build -t 镜像名称(镜像名称必须为小写):镜像版本 .

注意后面的点要加上,这个代表Dockerfile的所在目录

docker build -t docker-test:latest .
 

使用docker images 查看一下我们构建的镜像

运行镜像

docker run -d -p 80:8080 docker-test
 

像本文刚开始提到的,每个项目都需要有自己的运行环境,我们可以为每个项目都配置一个属于自己的镜像

6、删除镜像和容器

当我们有废弃的镜像和容器时,不使用需要删除

我们需要注意的一点是:

镜像启动后会产生容器,如果不先删除容器,镜像是无法删除的

例如:

我们停掉刚才的容器,删除我们的镜像

正确的步骤:

首先我们需要先删除容器:

查看所有状态的容器(包括已经被停止调的容器)

docker ps -a
 

先删除容器:

docker rm 87c728718a7b
 

再查看一下发现容器已被删除:

接下来删除镜像:

docker rmi  48dc9dfde4d8
 

CentOS7 下Docker最新入门教程 超级详细 (安装以及简单的使用)的更多相关文章

  1. centos7下docker的安装教程

    Centos7下docker安装教程以及踩过的那些坑 推荐在Centos下安装docker,在windows下安装docker可能会遇到很多的问题,而且docker官方推荐使用linux环境来使用do ...

  2. Python入门教程 超详细1小时学会Python

    Python入门教程 超详细1小时学会Python 作者: 字体:[增加 减小] 类型:转载 时间:2006-09-08我要评论 本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Ja ...

  3. Python入门教程 超详细1小时学会Python

    Python入门教程 超详细1小时学会Python 本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Java和Javascript,不用1小时你就可以用Python快速流畅地写有用的 ...

  4. RabbitMQ入门教程(一):安装和常用命令

    原文:RabbitMQ入门教程(一):安装和常用命令 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn ...

  5. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0 +VS 2013 开发环境配置

    图片太多,具体过程参照: [OpenCV入门教程之一] 安装OpenCV:OpenCV 3.0.OpenCV 2.4.8.OpenCV 2.4.9 +VS 开发环境配置 说下我这边的设置: 选择deb ...

  6. 前端组件化Polymer入门教程(1)——初识&&安装

    前端组件化Polymer入门教程目录: 前端组件化Polymer入门教程(1)--初识&&安装 前端组件化Polymer入门教程(2)--快速入门 前端组件化Polymer入门教程(3 ...

  7. 全面的Docker快速入门教程

    前言: 都2021年了,你还在为了安装一个开发或者部署环境.软件而花费半天的时间吗?你还在解决开发环境能够正常访问,而发布测试环境无法正常访问的问题吗?你还在为持续集成和持续交付(CI / CD)工作 ...

  8. CentOS7下Docker的安装与使用

    前言 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到 ...

  9. CentOS 6.4 服务器版安装教程(超级详细图解)

    附:CentOS 6.4下载地址 32位:http://mirror.centos.org/centos/6.4/isos/i386/CentOS-6.4-i386-bin-DVD1to2.torre ...

随机推荐

  1. 浅谈Webpack模块打包工具一

    为什么要使用模块打包工具 1.模块化开发ES Modules存在兼容性问题 打包之后成产阶段编译为ES5 解决兼容性问题 2.模块文件过多 网络请求频繁  开发阶段把散的模块打包成一个模块 解决网络请 ...

  2. Python爬虫入门教程:豆瓣Top电影爬取

        基本开发环境 Python 3.6 Pycharm 相关模块的使用 requests parsel csv 安装Python并添加到环境变量,pip安装需要的相关模块即可. 爬虫基本思路 一. ...

  3. Educational Codeforces Round 88 (Rated for Div. 2) E、Modular Stability 逆元+思维

    题目链接:E.Modular Stability 题意: 给你一个n数,一个k,在1,2,3...n里挑选k个数,使得对于任意非负整数x,对于这k个数的任何排列顺序,然后用x对这个排列一次取模,如果最 ...

  4. Gym 100796K Profact

    Alice is bored out of her mind by her math classes. She craves for something much more exciting. Tha ...

  5. UESTC 1218 Pick The Sticks

    Time Limit: 15000/10000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  Status ...

  6. Codeforces Round #653 (Div. 3) B. Multiply by 2, divide by 6 (数学)

    题意:有一个数\(n\),每次操作可以使\(n*=2\)或\(n/=6\)(如果能被整除),求最少操作次数使得\(n=1\),如果不满足,输出\(-1\). 题解:我们只要看\(n\)的质因子即可,如 ...

  7. Codeforces Round #651 (Div. 2) C. Number Game (博弈,数学)

    题意:对于正整数\(n\),每次可以选择使它变为\(n-1\)或者\(n/t\) (\(n\ mod\ t=0\)且\(t\)为奇数),当\(n=1\)时便不可以再取,问先手赢还是后手赢. 题解:首先 ...

  8. python代理池的构建3——爬取代理ip

    上篇博客地址:python代理池的构建2--代理ip是否可用的处理和检查 一.基础爬虫模块(Base_spider.py) #-*-coding:utf-8-*- ''' 目标: 实现可以指定不同UR ...

  9. 牛客编程巅峰赛S1第11场 - 黄金&钻石 C.牛牛找子集 (二分)

    题意:有一\(n\)个数,从中找数构成相同的子集,要求子集元素个数为\(k\),求构成子集个数最多的情况,输出子集(字典序最小). 题解:我们可以对子集的个数二分答案,首先用桶记录每个元素的个数,然后 ...

  10. cmd控制台Windows服务相关

    1.创建服务 sc create ServerName binpath= "E:\MySql5.5\bin\mysqld.exe" 2.启动服务 sc start ServerNa ...