Docker介绍、常用命令、项目部署

news/2024/11/21 21:22:51/

什么是Docker

简单说:Docker就是一个虚拟机,专业说:它是一个开源的容器平台。它和我们常用的VMware有很多相似的地方。

名词解释

镜像/images 由本体打包出来的文件。并不是文件本身,但是具有该文件的功能。举个不太贴切的例子,就像镜子里的你,虽然不是真的你本人,但是你做的任何动作他也会做。

仓库/DockerHub 存放镜像的地方,类似GitHub。包括MySQL、Tomcat、Redis、Nginx等等。有很多第三方提供的镜像,您可以通过pull命令下载使用。您也可以通过push命令上传镜像到仓库。

容器/container 运行的虚拟机,它是由镜像运行时生成的,并且一个镜像可以运行出多个容器。

Docker File 指定镜像是如何构建的。简单说就是把你的项目通过build命令构建成镜像【然后镜像run以后就会变成容器,在容器中运行你的项目】

tar文件 可以把镜像文件打包成tar文件

他们之间的关系:

docker

Docker特点

Docker虚拟技术与传统虚拟技术的区别

Docker思想来源于集装箱,核心思想是隔离。

  • Docker采用最简易的内核,只有几M
  • 容器相互独立,能区分计算资源

Docker思想

开发人员把项目打成war包+环境打包+数据打包成镜像,上传到DockerHub仓库,运维或者测试只需要下载开发的镜像,然后运行就可以。

以下内容为笔记,未经实际操作

Docker安装

以centos7为例

设置服务器IP地址

1、修改
BOOTPROTO=static
ONBOOT=yes
1表示使用静态IP
2表示重启时自动启用静态IP
2、增加
IPADDR=根据当前服务网络IP设置
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=114.114.114.114

more ifcfg-ens33命令可以查看文件修改后的内容

  • cd /etc/sysconfig/network-scripts
  • vi ifcfg-ens33修改文件内容

重启网络服务systemctl restart network.service

关闭防火墙systemctl stop firewalld.service

关掉本地防火墙和杀毒软件

现在就可以通过xshell进行远程连接了,现在在xshell里操作

安装Docker依赖包

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

安装国内下载源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Docker

yum install -y docker-ce

启动

systemctl start docker

验证

docker version

Docker应用

  1. 在开始测试前,在服务器安装Docker,Docker版本与开发版本一致
  2. 根据测试请求说明在镜像地址拉取镜像
  3. 运行镜像生成容器
  4. 访问项目,开始测试

Docker常用命令

搜索镜像

docker search 镜像名称

拉取镜像

docker pull 镜像名称

查看本地镜像(及镜像信息)

docker images

运行镜像生成容器

docker run -d -p 9999:8080 镜像ID

-d: 在后台运行 -p 9999:8080: 服务器端口映射到容器的端口 执行后会返回一长串数,证明已经正常运行

查看本地正在运行的容器

docker ps

查看所有历史运行的容器

docker ps -a

查看容器内部日志信息

docker logs -f 容器ID

进入容器

docker exec -it 容器ID /bin/bash

ls -l就可以查看有哪些文件了 d开头表示文件夹 -开头表示文件

退出容器

exit

启动/停止/重启容器

docker start/stop/restart 容器ID

Docker部署项目

# 先查看镜像ID
docker images
# 运行
docker run -d -p 9999:8080 镜像ID
# 查看正在运行的容器
docker ps
# 进入容器
docker exec -it 容器ID /bin/bash
# 查看文件【1】
ls -l
# 进入放项目的目录
cd 文件夹名
# 需要上传war文件,先退出容器
# 下载一个上传工具lrzsz
exit
# 下载lrzsz(下载过程中都选y)
yum install lrzsz
# 下载好以后切换到根目录
cd /opt
# 查看根目录文件
ls
# 上传war包
rz
# 查看是否上传成功
ls
# 查看正在运行的容器(方便复制ID)
docker ps
# 复制文件到容器下对应的文件夹
# 文件夹路径可以在上面【1】看到
docker cp 文件名.war 容器ID:文件夹路径
# 进入容器查看
docker exec -it 容器ID /bin/bash
# 查看文件
ls -l
# 进入放文件的文件夹
cd 文件夹名
# 查看文件(确认是否复制过来了)
# 一般都是复制到Tomcat的webapps文件夹中
# 如果Tomcat正在运行,会自动将war包解包
ls -l

现在就已经把项目部署到了测试环境了。

访问项目

http://IPADDR中设置的IP地址:9999/项目名称

 


http://www.ppmy.cn/news/75999.html

相关文章

基于Rancherwebhook微服务的弹性伸缩实现

一、引言 随着云计算技术的不断发展,弹性伸缩已成为云环境下实现高可用性、可扩展性、资源优化和负载均衡的重要手段。Rancherwebhook微服务是一种基于容器的云原生应用管理平台,提供了一种方便、快捷、高效的方式来管理容器编排和弹性伸缩。本文将介绍如…

LeetCode:29. 两数相除

29. 两数相除 1)题目2)思路3)代码1.初始代码2.第一次优化3.第二次优化 4)结果1.初始结果2.第一次优化结果3.第二次优化结果 1)题目 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,…

基于Freertos的ESP-IDF开发——7.WS2812B彩色灯循环

基于Freertos的ESP-IDF开发——7.WS2812B彩色灯循环 0. 前言1. WS2812B简介2. 完整代码3. 演示效果4. 其他FreeRtos文章 0. 前言 本节使用WS2812B实现彩灯循环 开发环境:ESP-IDF 4.3 操作系统:Windows10 专业版 开发板:自制的ESP32-WROOM-3…

Python关于Pandas的iterrows、itertuples等遍历表格时读取不到第一行的问题

一、问题原因 df.iterrows() 是用来遍历 Pandas DataFrame 的方法,它会把 DataFrame 中的每一行转换成一个元组,其中第一个元素是行号,第二个元素是该行的数据。行号从 0 开始。 在使用 df.iterrows() 遍历 DataFrame 的时候发现表格第二行…

CMD与DOS脚本编程【第六章】

预计更新 第一章. 简介和基础命令 1.1 介绍cmd/dos脚本语言的概念和基本语法 1.2 讲解常用的基础命令和参数,如echo、dir、cd等 第二章. 变量和运算符 2.1 讲解变量和常量的定义和使用方法 2.2 介绍不同类型的运算符和运算规则 第三章. 控制流程和条件语句 3.1 介…

组合数学第二讲

可以把取出来的数从小到大排序,第一个数不变,第二个数1,以此类推... 总共的情况为,数字取完后可再依次减回去,保证数在100以内 k-element multisets 引出下面的二项式系数 binomial coefficients(二项式系…

FAT NTFS Ext3文件系统有什么区别

10 年前 FAT 文件系统还是常见的格式,而现在 Windows 上主要是 NTFS,Linux 上主要是Ext3、Ext4 文件系统。关于这块知识,一般资料只会从支持的磁盘大小、数据保护、文件名等各种维度帮你比较,但是最本质的内容却被一笔带过。它们最…

Glob 文件匹配

前言 glob本质是Unix shell 风格的路径匹配规则。 该规则后续被其它语言支持。 ?:匹配一个任意字符 *:匹配任意个任意字符 [sequence]:匹配出现在sequence里面的一个字符 [!sequence]:匹配没有出现在sequence里面的一个字符 [a…