Docker概述(二)(标贝科技)

本文深入讲解Docker镜像的构建过程,通过Dockerfile创建tomcat9.0镜像,并介绍如何运行。此外,还总结了docker的基础命令、镜像命令和容器命令,包括启动、停止、删除及端口映射等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标贝科技 https://ai.data-baker.com/#/?source=qwer12

填写邀请码fwwqgs,每日免费调用量还可以翻倍
在这里插入图片描述
在这里插入图片描述

Docker概述(二)



前言

本文将介绍Docker镜像的构建、运行以及介绍docker的常用命令


一、镜像构建与运行

  • Dockerfile创建
    Dockerfile常用命令介绍

在这里插入图片描述

这里以tomcat9.0为例
首先下载一个tomcat9.0

docker pull tomcat:9.0

通常我们启动一个Tomcat容器,官方镜像是简化版的,在webapps 目录下没有任何内容,所有我们启动之后访问主页也是没有任何内容。但是官方镜像的 webapps.dist 目录下有首页文件,所以我们将 webapps.dist 目录下的所有文件复制到 webapps.

1. 进入启动的容器

docker exec -it 容器id /bin/bash

2. 将webapps.dist 目录所有文件复制到 webapps 目录下

cp -r webapps.dist/* webapps/

image-20211031135744274

3. 提前准备好 webapps 目录文件

我这里直接将官方Tomcat容器中的 webapps.dist 目录拷贝到本机的/home/webapps 目录下:

docker cp 容器ID:/usr/local/tomcat/webapps.dist /home/webapps

4.编写dockerfile内容
在本机 /home 目录下新建一个 Dockerfile 文件(可以任意命名,没有后缀),内容如下:

FROM tomcat:latest
MAINTAINER itcoke
WORKDIR /usr/local/tomcat/webapps
COPY ./webapps/ /usr/local/tomcat/webapps/

5. 构建镜像

docker build -f Dockerfile -t itcoke/mytomcat:1.0

在这里插入图片描述

6. 运行镜像

docker run -d -p 8081:8080 itcoke/mytomcat:1.0

在这里插入图片描述

二、docker常用命令总结

(一)docker 基础命令
#启动docker

systemctl start docker

#关闭docker

systemctl stop docker

#重启docker

systemctl restart docker

#查看docker 运行状态 ------如果是在运行中 输入命令后 会看到绿色的active

systemctl status docker

#查看docker 版本号信息

docker version

#拉取命令

docker pull --help

#docker 帮助命令 忘记了某些命令便可使用此进行查看与回顾

docker --help

(二)docker 镜像命令

#查看自己服务器中docker 镜像列表

docker images

#搜索镜像

docker search 镜像名
docker search --filter=STARS=9000 mysql (搜索STARS>9000的 mysql镜像)

#拉取镜像 不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本

docker pull 镜像名
docker pull 镜像名:tag(版本号)

#运行镜像

docker run 镜像名
docker run 镜像名:Tag

#删除镜像 当前镜像没有被任何容器使用才可以删除

docker rmi -f 镜像名/镜像id

#删除多个镜像 中间加空格

docker rmi -f 镜像名/镜像id 镜像名/镜像id

#删除全部镜像 -a 显示全部 -q 只显示id

docker rmi -f $(docker images -aq)

#强制删除镜像

docker image rm 镜像名/镜像id

#保存镜像 tar

docker  save tomcat -o /xxx.tar

#加载镜像

docker load -i 镜像文件保存位置

(三)docker 容器命令
解释:docker 容器 就好比 java中的对象 ,docker 容器的启动需要 镜像的支持

#查看运行中容器列表

docker ps

#查看所有容器

docker ps -a

#启动容器
-it 表示与容器进行交互式启动 -d 表示守护进程 --name 容器名 /bin/base 交互路径

docker run -it -d --name 容器名 镜像名:Tag /bin/bash
docker run -it -d --name redis001 redis:5.0.5 /bin/bash

#启动容器

docker start 容器名/容器id

#停止容器

docker stop 容器名/容器id 

#删除一个容器

docker rm -f 容器名/容器id

#删除多个容器 容器名空格隔开

docker rm -f 容器名/容器id 容器名/容器id 容器名/容器id

#删除全部容器

docker rm -f $(docker ps -aq)

#容器端口与服务器端口映射
已redis为例:-p 8888:6379 解析 将容器内部的 6379端口与docker 宿主机(docker装在哪台服务器 那台服务器 就是其宿主机)8888 端口进行映射
那通过外部访问宿主机8888端口 即可访问到 docker 容器 6379 端口了

docker run -itd --name redis002 -p 8888:6379 redis:5.0.5 /bin/base

#进入容器方式一

docker exec -it 容器名/容器id /bin/base
docker exec -it redis002 /bin/base

#进入容器方式二

docker attach 容器名/容器id

#退出容器
#直接退出 未添加 -d持久化运行容器参数时 容器将会被关闭

exit

#优雅退出 无论是否加 -d 都不会关闭容器

Ctrl + p + q

#停止容器

docker stop 容器名/容器id  

#重启容器

docker restart 容器名/容器id

#kill容器

docker kill 容器名/容器id

#容器文件拷贝
#从容器内拷出

docker cp 容器名/名称: 容器内路径 容器外路径

#从外部拷贝文件到容器内部

docker cp 容器外路径 容器id/名称: 容器内路径

#查看容器日志

docker logs -f --tail=要查看末尾多少行

参考文献:

https://www.cnblogs.com/ysocean/p/15659105.html
https://blog.csdn.net/leilei1366615/article/details/106267225

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值