论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
Docker在linux上的安装与使用(亲测)
Docker在linux上的安装与使用(亲测)
张春
论坛元老
|
2024-8-14 04:33:48
|
显示全部楼层
|
阅读模式
楼主
主题
1555
|
帖子
1555
|
积分
4665
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
一、Docker安装
1、安装前必读
在安装 Docker 之前,先说一下设置,我这里是Centos7;Linux 内核:官方建议 3.10 以上,3.8以上貌似也可。
注意:本文的下令使用的是 root 用户登录执行,不是 root 的话所有下令前面要加 sudo
2、更新 yum 包
使用 root 权限更新 yum 包(生产情况中此步操作需慎重)
yum -y update
3、卸载旧版本(假如以前安装过,否则此步骤可以忽略)
yum remove docker-ce docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
复制代码
4、安装相应的安装包
yum install -y yum-utils device-mapper-persistent-data lvm2
复制代码
5、设置 yum 源
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复制代码
6、安装最新版本的 Docker Engine-Community 和 containerd
yum -y install docker-ce docker-ce-cli containerd.io
复制代码
7、选择性安装(查看可用版本有哪些);若已经做了第六步,无需操作此步骤
yum list docker-ce --showduplicates | sort -r
复制代码
选择一个版本并安装:yum install docker-ce-版本号
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)不停到第一个连字符,并用连字符(-)分隔。例如:docker-ce-24.0.6。
yum -y install docker-ce-24.0.6 docker-ce-cli-24.0.6 containerd.io
复制代码
8、查看安装版本
docker -v
docer version
复制代码
9、启动Docker,并设置开机主动启动
systemctl start docker
systemctl enable docker
#停止docker
systemctl stop docker
#重启docker
systemctl restart docker
#查看状态
systemctl status docker
复制代码
运行Hello-world
通过运行 hello-world 镜像来验证是否精确安装了 Docker Engine-Community
docker run hello-world
复制代码
10、卸载docker
(1).卸载依赖
sudo yum remove docker-ce docker-ce-cli containerd.io
(2).删除文件夹
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
二、Docker使用
1、镜像操作
#查看镜像
docker images
#移除镜像是 rmi
docker rmi <镜像【IMAGE】 ID>
#查找镜像
docker search tomcat
#拉取tomcat镜像(默认为 latest版本)
docker pull tomcat:latest
#欺压删除镜像(-f)
docker rmi -f hello-world
#一次欺压删除多个镜像(多个镜像中心用空格隔开hello-world 和nginx)
docker rmi -f hello-world nginx
#一次删除全部的镜像
docker rmi -f $(docker images -qa)
2、容器操作
#查看运行的容器
docker ps
#列出当前所有正在运行的容器+汗青上运行过的
docker ps -a
#列出上一次运行的容器
docker ps -l
#列出前三次运行的容器
docker ps -n 3
#只显示容器编号
docker ps -q
#以交互式且伪终端打开的方式运行centos容器,且容器名字为mycentos
docker run -it --name mycentos centos
#关闭容器后退出容器
exit
#容器不克制退出
ctrl+p+q
#启动容器
docker start <容器 ID>
#重新启动容器
docker restart <容器 ID>
#克制容器(温柔克制)
docker stop <容器【CONTAINER】ID>
#克制容器(欺压克制,相当于拔电源)
docker kill <容器 ID>
#删除已克制的容器
docker rm <容器 ID>
#欺压删除容器(没有克制的也会被删除)
docker rm -f <容器 ID>
#一次性欺压删除多个容器
docker rm -f $(docker ps -aq) 大概 docker ps -aq |xargs docker rm -f
#以后台模式启动一个容器(启动守卫式容器)
docker run -d centos
docker run -d centos /bin/sh -c "while true; do echo hello zhangyanfen; sleep 2; done"
#查看容器日志(-t 加入时间戳; -f跟随最新的日志打印; --tail 数值 显示最后多少条)
docker logs -t -f --tail 3 <容器ID>
#查看容器内运行的进程
docker top <容器ID>
#查看容器内部细节
docker inspect <容器ID>
#未退出容器后,重新进入容器;(attach直接进入容器启动下令的终端,不会启动新的进程)
docker attach <容器ID>
#未退出容器的前提下,在宿主机中执行容器的下令,直接返回给宿主机(是在容器中打开新的终端,并且可以启动新的进程)
docker exec -t <容器ID> ls -l /tmp
#进入容器
docker exec -it f07f19e6eb63 /bin/bash
#从容器内拷贝文件到主机上
docker cp <容器ID>:容器内路径 目的地主机路径
docker cp 73c418ba31bc:/tmp/zyf.txt /opt
运行centos容器,并进入centos伪终端 -i 交互式; -t 伪终端
docker run -it <镜像 ID>
未退出容器的前提下,在宿主机中执行容器的ls -l /tmp下令,直接返回给宿主机
docker exec -t <容器ID> ls -l /tmp
三、Dock卷操作
Docker卷与容器绑定后,容器就可以与宿主数据互通;即便容器克制后,再次启动容器,宿主的数据仍可以同步到容器中。(ro的意思为read only,启动下令添加ro后,容器中不能编辑或添加文件,只有宿主机可以编辑或添加)
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
docker inspect <容器ID>
例:
docker run -it -v /opt/vdata:/opt/mydata --name centos centos
docker inspect 4a9cbd7f02c3
四、Docker安装Tomcat
1、查找Docker Hub上的tomcat镜像
docker search tomcat
复制代码
2、拉取tomcat镜像
docker pull tomcat
docker images
复制代码
3、使用tomcat默认的设置来启动一个tomcat容器
docker run -it -p 8888:8080 --name tomcat tomcat
复制代码
注意
当Tomcat版本过高时,根据IP地址和端口号访问大概会出现下面问题:出现404
是由于webapps文件夹下内容为空,内容都在webapps.dist 目录下,办理办法如下:
1.进入tomcat容器
docker exec -it 容器id /bin/bash
2.ls 查看文件夹内容,可以发现下面有webapps文件夹和webapps.dist文件夹,将webapps.dist下的内容全部异动到webapps中。
mv webapps.dist/* webapps
4、拷贝容器内tomcat设置文件和日志到本地准备映射
在主机中创建文件夹
mkdir -p /opt/app/tomcat
docker cp tomcat:/usr/local/tomcat/conf /opt/app/tomcat/conf
docker cp tomcat:/usr/local/tomcat/logs /opt/app/tomcat/logs
复制代码
5、克制tomcat,并删除容器
docker stop tomcat
docker rm tomcat
复制代码
6、创建卷并运行tomcat容器
docker run -it -p 8888:8080 --name tomcat \
-v /opt/app/tomcat/webapps:/usr/local/tomcat/webapps \
-v /opt/app/tomcat/conf:/usr/local/tomcat/conf \
-v /opt/app/tomcat/logs:/usr/local/tomcat/logs --restart=always tomcat
复制代码
7、生成新的镜像文件
docker commit -a='作者' -m='镜像描述' 容器ID 新的镜像名/名称:版本 如下:
docker commit -a="zhangyanfen" -m="有doc的tomcat" f07f19e6eb63 zf/mytomcat:1.0
复制代码
根据新创建的镜像,启动新的容器
docker run -it -p 7777:8080 --name tomcat zf/mytomcat:1.0
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
张春
论坛元老
这个人很懒什么都没写!
楼主热帖
聊聊容灾演练-练什么|深度好文 ...
Eclipse连接SQLServer2008
【CSDN官方】开源又好用的国产SPL ...
Redis概述及基本数据结构
Velero系列文章(四):使用Velero进行 ...
2022十三届蓝桥杯国赛题解
彻底搞懂Docker容器与Kraft模式kafka集 ...
干货|APP自动化Android特殊控件Toast识 ...
4. 事务和锁
linux跟踪技术之ebpf
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
云原生
物联网
快速回复
返回顶部
返回列表