CentOS7 下Docker最新入门教程 超级详细 (安装以及简单的使用)
转载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 镜像仓库:
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo4) 启用 edge 和 testing 镜像仓库:
$ sudo yum-config-manager --enable docker-ce-edge $ sudo yum-config-manager --enable docker-ce-testing5) 更新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、写入以下内容
#该镜像的父镜像 为 tomcat 镜像 这样我们就有了tomcat的环境 from registry.cn-hangzhou.aliyuncs.com/shuodao/tomcat-8.5.27 #复制当前文件夹下的 war包 到镜像中tomcat的webapps目录 COPY TestDocker.war /usr/tomcat/webapps #去除容器内部中文乱码问题 ENV LANG C.UTF-85、构建镜像(还是在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最新入门教程 超级详细 (安装以及简单的使用)的更多相关文章
- centos7下docker的安装教程
Centos7下docker安装教程以及踩过的那些坑 推荐在Centos下安装docker,在windows下安装docker可能会遇到很多的问题,而且docker官方推荐使用linux环境来使用do ...
- Python入门教程 超详细1小时学会Python
Python入门教程 超详细1小时学会Python 作者: 字体:[增加 减小] 类型:转载 时间:2006-09-08我要评论 本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Ja ...
- Python入门教程 超详细1小时学会Python
Python入门教程 超详细1小时学会Python 本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Java和Javascript,不用1小时你就可以用Python快速流畅地写有用的 ...
- RabbitMQ入门教程(一):安装和常用命令
原文:RabbitMQ入门教程(一):安装和常用命令 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn ...
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0 +VS 2013 开发环境配置
图片太多,具体过程参照: [OpenCV入门教程之一] 安装OpenCV:OpenCV 3.0.OpenCV 2.4.8.OpenCV 2.4.9 +VS 开发环境配置 说下我这边的设置: 选择deb ...
- 前端组件化Polymer入门教程(1)——初识&&安装
前端组件化Polymer入门教程目录: 前端组件化Polymer入门教程(1)--初识&&安装 前端组件化Polymer入门教程(2)--快速入门 前端组件化Polymer入门教程(3 ...
- 全面的Docker快速入门教程
前言: 都2021年了,你还在为了安装一个开发或者部署环境.软件而花费半天的时间吗?你还在解决开发环境能够正常访问,而发布测试环境无法正常访问的问题吗?你还在为持续集成和持续交付(CI / CD)工作 ...
- CentOS7下Docker的安装与使用
前言 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到 ...
- CentOS 6.4 服务器版安装教程(超级详细图解)
附:CentOS 6.4下载地址 32位:http://mirror.centos.org/centos/6.4/isos/i386/CentOS-6.4-i386-bin-DVD1to2.torre ...
随机推荐
- UI的管理
游戏的UI系统往往会比较复杂,工作量比较庞大,需要多人协作完成,为了开发和维护方便,有必要对UI系统进行管理. 一.制作预制件 将UI的各个不同的功能面板制作为预制件,放入Resources目录下,方 ...
- 一次小模块的使用过程-LC12S无线模块介绍
前言: 最近帮人做了个小设备,使用了无线模块.触摸芯片,主要功能就是把触摸按键的信号无线传到控制继电器输出,MCU是STM8系列的芯片,其中使用过程中调试无线模块LC21S觉得挺好用的,就写了这篇文章 ...
- Codeforces 102394I Interesting Permutation 思维
题意: 你有一个长度为n的序列a(这个序列只能使用[1,n]区间内的数字,每个数字只能使用一次),通过a序列可以构造出来三个相同长度的序列f.g.h For each 1≤i≤n, fi=max{a1 ...
- python给字段名和值都加上引号
import re c = ''' Accept: application/json, text/javascript, */*; q=0.01 Accept-Encoding: gzip, defl ...
- 牛客编程巅峰赛S2第7场 - 钻石&王者 A.牛牛的独特子序列 (字符串,二分)
题意:给你一个字符串,找出一个类似为\(aaabbbccc\)这样的由连续的\(abc\)构成的子序列,其中\(|a|=|b|=|c|\),问字符串中能构造出的子序列的最大长度. 题解:这题刚开始一直 ...
- Codeforces Gym-102219 2019 ICPC Malaysia National J. Kitchen Plates (暴力,拓扑排序)
题意:给你5个\(A,B,C,D,E\)大小关系式,升序输出它们,如果所给的大小矛盾,输出\(impossible\). 题意:当时第一眼想到的就是连边然后排序,很明显是拓扑排序(然而我不会qwq,之 ...
- c语言中qsort函数的使用、编程中的一些错误
qsort()函数: 功能:相当于c++sort,具有快排的功能,复杂度的话nlog(n)注:C中的qsort()采用的是快排算法,C++的sort()则是改进的快排算法.两者的时间复杂度都是nlog ...
- java调用http接口的几种方式总结
本文参考: https://blog.csdn.net/fightingXia/article/details/71775516 https://www.cnblogs.com/jeffen/p/69 ...
- Spring中AOP学习笔记
AOP 描述(摘抄百度百科) AOP开发中的相关操作术语 实例(xml方式) 通知的类型 切入点表达式的写法: 实例(注解方式) 描述(摘抄百度百科) AOP(面向切面编程):Aspect Orien ...
- C++中main函数的返回值一定要是int
因为大学上课时候,经常是在主函数中做处理,直接用cout语句输出到显示设备,所以一直在用void main(). 直到后面具体编程的时候,才发现void main()这种用法是按 C89(C语言的早期 ...