标贝科技 https://ai.data-baker.com/#/?source=qwer12
填写邀请码fwwqgs,每日免费调用量还可以翻倍
Docker概述(二)
文章目录
- Docker概述(二)
- 前言
- 一、镜像构建与运行
- 二、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
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)