Docker linux环境Docker的部署以及构建镜像

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Docker linux环境Docker的部署以及构建镜像

linux环境Docker的部署以及构建镜像
一、docker部署
1、快速部署常用的命令:
1.1、demo-部署tomcat
1.2、tomcat容器内部结构
1.2.1、每个tomcat容器,都包含三个组件
1.2.2、在容器内部执行命令
1.3、容器生命周期
二、Dockerfile构建镜像
1、demo-Dockerfile自动部署Tomcat 应用
STEP1 、Dockerfile内容:
STEP2、新建一个web应用first-dockerfile(小白可),进行构建
STEP3、在命令行执行如下命令
2、部署redis镜像
一、docker部署
1、快速部署常用的命令:
1、表示从远程仓库抽取镜像:docker pull 镜像名<:tags>
2、查看本地镜像:docker images
3、创建容器,启动应用 : docker run 镜像名<:tags>
ps:如果镜像还没有被抽取,此时会先抽取镜像,然后安装到本地,启动镜像
4、查看正在运行中的容器:docker ps
5、删除容器, <-f>表示强制删除:docker rm <-f> 容器id
6、删除指定版本的镜像, <-f>表示 (即便存在对应容器) 强制删除:docker rmi <-f> 镜像名<:tags>
1
2
3
4
5
6
7
快速部署命令概览图:

1.1、demo-部署tomcat
下载默认版本(当前下载使用最多的版本): docker pull tomcat
查看有哪些本地镜像:docker images

下载指定版本[版本号从hub.docker.com 即docker中央仓库获取到的]:

docker pull tomcat:8.5.46-jdk8-openjdk
1
docker 镜像仓库访问不了,可以参看阿里镜像:https://developer.aliyun.com/packageSearch?word=tomcat

创建对应容器,才能提供服务:docker run tomcat
启动成功后,可以看到端口8080,若想访问,需要做宿主机和容器的端口映射,操作如下:

docker run -p 8000:8080 -d tomcat
1
查看正在使用的容器:docker ps
删除容器:

docker stop 容器id
docker rm 容器ID
1
2
删除镜像:

docker rmi 镜像<:tags>
1
宿主机里有docker容器tomcat,tomcat默认端口8080,docker做了一个宿主机和容器的端口映射。外侧浏览器通过宿主机ip和端口8000访问tomcat
转发给内部8080端口。

1.2、tomcat容器内部结构
1.2.1、每个tomcat容器,都包含三个组件
1、linux系统,提供最底层的linux命令,此操作系统只提供安装jdk最基本的安装环境,尺寸非常小【tomcat基本运行环境,绝大多数docker容器都内置了linux系统,进入到容器内部,直接进行linux操作就可以了】
2、此基础上,docker 自动安装jdk1.8.0_222
3、tomcat 【eg:Apache Tomcat/8.5.46 】
1.2.2、在容器内部执行命令
格式:docker exec [-it] 容器id

exec 在对应容器中执行命令
-it 采用交互方式执行命令

如果你想进入一个容器,在容器内部进行后续的操作:docker exec -it 容器ID /bin/bash

ps: /bin/bash :开启一个接收后续命令的终端

demo:
获取容器ID:docker ps
进入容器内部:docker exec -it 45ce1a4ba159 /bin/bash
可执行的linux命令有许多,eg:
查看操作系统版本:cat /proc/version
查看jdk版本:java -version
退出容器,回到宿主机:exit

在宿主机,查看linux 镜像和容器默认存放路径:/var/lib/镜像名
cd /var/lib/docker
可以看到,镜像存放在image路径下,容器存放在containers路径下

1.3、容器生命周期
想多了解一些的小伙伴可以看看这块,非运维小伙伴不做重点掌握:

图中4个椭圆:stopped,running ,pause ,deleted 为容器的4个状态
箭头上的文本均为命令,熟悉这些命令,可以有效协助运维小伙伴排查问题。

二、Dockerfile构建镜像
1、docker是通过Dockerfile构建镜像的,Dockerfile用来做镜像描述,是一个包含用于 组合镜像命令 的可执行脚本,是一个无后缀的文件。
2、docker通过读取Dockerfile中的指令按步自动生成镜像
3、构建镜像

docker build -t 机构/镜像名<:tags> Dockerfile目录(
可以是绝对路径也可以是相对路径)

1、demo-Dockerfile自动部署Tomcat 应用
构建一个自定义镜像,在原有tomcat安装完基础上自动将名为docker-web的应用发布到镜像中,任何拿到自定义镜像中之要执行run就可以访问docker-web应用

STEP1 、Dockerfile内容:
红色字体部分即为Dockerfile内容,

tips:此文件无后缀哈

设置基准镜像

FROM tomcat:latest

本镜像由哪个人/机构维护。没有执行功能,只是一个说明性信息

MAINTAINER wq.com

切换工作目录。 webapps不存在则创建,参看web容器内部文件环境看,默认 /usr/local/tomcat ,而所有web应用都放在webapps目录下WORKDIR

/usr/local/tomcat/webapps

ADD表示复制。将镜像文件复制到镜像指定目录下。docker-web:指dockerfile同级目录下的文件夹,./docker-web:指webapps目录下的文件,若此目录不存在则创建;

ADD docker-web ./docker-web
STEP2、新建一个web应用first-dockerfile(小白可),进行构建
本地新建文件夹first-dockerfile,在里面创建文件夹docker-web,然后进入,创建index.html ,编辑内容:

docker首页


在文件夹下,创建Dockerfile,不带后缀,将上面Dockerfile内容拷贝到本文件

在/usr下创建images 文件夹,用来存放镜像,上传first-dockerfile文件夹

文件层级:

执行构建命令:
切换到/usr/image/first-dockerfile/目录下,【点 表示当前目录,即/usr/image/first-dockerfile/】,执行命令:
docker build -t wq.com/mywebapp:1.0.0 .

执行docker images 可以看到刚才的应用

STEP3、在命令行执行如下命令
启动容器:docker run -p -d 8001:8080 wq.com/mywebapp:1.0.0
在浏览器访问 宿主机IP:8001/docker-web/index.html

可查看正在运行的容器:docker ps
进入到容器内部:docker exec -it 容器ID /bin/bash
直接进入到 /usr/local/tomcat/webapps 目录下,可以看到有docker-web目录文件夹

2、部署redis镜像
拉取redis镜像:docker pull redis

查看镜像是否构建:
docker images

启动容器:
docker run -p 6000:6379 -d redis

查看运行的容器
docker ps

查看端口6000是否被监听,做了宿主机和容器内部的端口映netstat tulpn

进入redis容器内部:
docker exec -it 容器ID /bin/bash

查看容器元数据:docker inspect 容器ID

查看容器日志,后期构建自己的应用,如果报错可以通过此命令查看报错情况:docker logs

监控容器内部进程状态
docker top 与 docker stats 可以看到是每个docker容器进程的资源占用情况,根据输出的容器ID,查对应应用:docker ps

可以在容器内部执行:
redis-cli
exit
————————————————
版权声明:本文为CSDN博主「甜可儿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_17033579/article/details/133249048

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
5天前
|
运维 Kubernetes Docker
利用Docker和Kubernetes构建微服务架构
利用Docker和Kubernetes构建微服务架构
|
4天前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
49 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
9天前
|
缓存 Linux 网络安全
docker的镜像无法下载如何解决?
【10月更文挑战第31天】docker的镜像无法下载如何解决?
263 28
|
5天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
5天前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
15 1
|
5天前
|
存储 关系型数据库 Linux
【赵渝强老师】什么是Docker的镜像
Docker镜像是一个只读模板,包含应用程序及其运行所需的依赖环境。镜像采用分层文件系统,每次修改都会以读写层形式添加到原只读模板上。内核bootfs用于加载Linux内核,根镜像相当于操作系统,上方为应用层。镜像在物理存储上是一系列文件的集合,默认存储路径为“/var/lib/docker”。
|
5天前
|
API Docker 容器
【赵渝强老师】构建Docker Swarm集群
本文介绍了如何使用三台虚拟主机构建Docker Swarm集群。首先在master节点上初始化集群,然后通过特定命令将node1和node2作为worker节点加入集群。最后,在master节点上查看集群的节点信息,确认集群构建成功。文中还提供了相关图片和视频教程,帮助读者更好地理解和操作。
|
5天前
|
缓存 JavaScript 安全
深入理解Docker镜像构建过程
深入理解Docker镜像构建过程
18 0
|
5天前
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
19 0