论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
Docker命令实战
Docker命令实战
吴旭华
论坛元老
|
2022-6-26 01:34:01
|
显示全部楼层
|
阅读模式
楼主
主题
1744
|
帖子
1744
|
积分
5232
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
1、常用命令
2、基础实战
1. 找镜像(docker hub)并下载(docker pull):
1.例如:下载nginx和redis,去docker hub找到nginx和redis镜像
docker pull nginx #默认下载最新版
docker pull redis #默认下载最新版
//如果要下载指定版本:镜像名:版本名(也叫标签);例如:docker pull nginx:1.20.1
复制代码
2.查看下载的镜像(docker images)都保存在本地
docker images #查看所有镜像
复制代码
3.删除下载的镜像(docker rmi),并再次查看
docker rmi 镜像名;
# 例如:docker rmi redis (nginx等价于nginx:latest)删除的是最新版本
# 如果删除指定版本呢?
docker rmi 镜像名:版本号/镜像id
复制代码
2. 启动容器:
1. 启动(docker run)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 解释:【docker run 设置项 镜像名 】 镜像启动运行的命令(镜像里面默认有的,一般不会写)
# 例:docker run --name=mynginx -d --restart=always -p 88:80 nginx
# --name=mynginx设置名字
# -d:后台运行
# --restart=always: 开机自启
# -p 88:80 把主机的88端口转到80端口
# 启动nginx应用容器,真正的运行起来;并映射88端口,测试的访问
复制代码
2.停止运行
# 停止容器
docker stop 容器id/名字
# 再次启动
docker start 容器id/名字
复制代码
3.查看正在运行的容器
docker ps
复制代码
4. 查看docker运行的和停止的容器
docker ps -a
复制代码
5.删除(docker rmdocker )
# 删除停止的容器
docker rm 容器id/名字
# 强制删除正在运行中的
docker rm -f mynginx
复制代码
6.补充
# 如果才开始没有设置开机自启怎么办?更新一下设置项
docker update 容器id/名字 --restart=always
复制代码
3. 修改容器内容:修改默认的index.html 页面
方法1:进入到容器里去修改
1.通过公网IP192.168.2.129,88端口去访问nginx
2. 修改默认的index.html 页面
进入容器内部修改
# 进入容器内部的系统,修改容器内容
docker exec -it 容器id /bin/bash
# -it表示已交互模式进入容器
# /bin/bash 进入容器的bash控制台(相当于linux下的另一个小型linux环境)
cd /usr/share/nginx/html #然后ls,里面有一个index.html
echo "<h1>Welcome to China</h1>" > index.html #<h1></h1>表示标题
# 改好页面以后,exit就可以退出!
复制代码
通过公网IP192.168.2.129,88端口去访问nginx,就会发现页面修改成功
方法2:命令挂载:在主机外面修改
1.把容器里的目录与当前目录建立起链接
docker run --name=mynginx -d --restart=always -p 88:80 \
-v /data/html:/usr/share/nginx/html :ro nginx
# -v 后面表示把主机的目录挂载到容器里的目录,和端口的方式很相似;
# /data/html主机目录
# /usr/share/nginx/html容器目录
# ro 表示容器里不能改,只能在容器外进行更改
复制代码
2.此时cd /data/html页面,ls里面什么都没有;因为主机是空的,容器也是空
3.然后进行追加修改,生成一个index.html页面
4.此时再去访问,也可以做到修改
4.提交改变:将自己修改好的镜像提交
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
复制代码
1. 通过docker commit --help查看帮助文档
2. 提交并设置
3. 生成一个新的镜像zlnginx
4.以后访问页面,要想访问原来的页面,就启动原来的镜像nginx;要想访问新的页面就启动zlnginx镜像
5. 如何把修改好的镜像(zlnginx)传输到一台新的服务器?
方法1:打成压缩包
1.物理传输:打成压缩包
docker save -o zlnginx.tar zlnginx:v1
# -o 表示指定的压缩包名字,名字是以.tar结尾的压缩包文件
复制代码
2.把压缩包传到机器上后,然后加载
docker load -i zlnginx.tar
# -i 表示后面跟的是要加载的镜像压缩包名
复制代码
3.此时在docker images就可以看到zlnginx镜像了!
方法2:推送到远程仓库(docker hub),镜像推送
1.需要先注册登录docker hub
2. 创建一个仓库(create a Repository)
3.creat创建以后得到以下界面
4.根据提示,把新的镜像推送到仓库,注意要带上名字
4.1 先把旧镜像的名字,改成仓库要求的新版本名字
docker tag local-image:tagname new-repo:tagname
# local-image:tagname,本地的镜像和标签,这里就是:zlnginx和v1
# new-repo:tagname,新的名字和版本号,例如:zznginx.v1
# 根据需要自己修改
docker tag zlnginx:v1 1870298479/zznginx:v1.0
复制代码
这时docker images就能查到1870298479/zznginx:v1镜像
4.2 进行推送
(1)在推送前先进行登录:
docker login
复制代码
(2)然后会让你输入登录的账号密码:
(3) 登上以后就可以进行推送
docker push 1870298479/zznginx:v1.0
复制代码
(4)推送完以后进行登出
(5)再次回到docker hub页面就可以看到v1版本了
(6)点击复制,别的机器就可以直接下载使用了
docker pull 1870298479/zznginx:v1
复制代码
6.补充常用命令
1.查看容器的运行日志
docker logs 容器名/id
复制代码
2.进入到某个容器里
docker exec -it 容器id /bin/bash
复制代码
3.docker经常修改nginx配置文件,所以把nginx配置文件也挂载出来
docker run -d -p 88:80 \
-v /data/html:/usr/share/nginx/html:ro \ #nginx页面挂载出来
-v /data/conf/nginx.conf:/etc/nginx/nginx.conf \ #nginx配置文件挂载出来
--name mynginx-02 \
nginx
复制代码
4.把容器指定位置的东西复制出来
docker cp 5eff66eec7e1:/etc/nginx/nginx.conf /data/conf/nginx.conf
复制代码
5. 把外面的内容复制到容器里面
docker cp /data/conf/nginx.conf 5eff66eec7e1:/etc/nginx/nginx.conf
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
吴旭华
论坛元老
这个人很懒什么都没写!
楼主热帖
【云原生】第二篇--容器管理工具 Docke ...
数据库系统课程设计(高校成绩管理数据 ...
《原CSharp》第二回 巧习得元素分类 子 ...
使用TrueNas(FreeNas)进行华为手机备 ...
JVM虚拟机性能监控与故障处理工具(3) ...
【图论】—— 有向图的强连通分量 ...
java中==和equals区别
Spark 总复习
mamba-ssm安装building wheel卡着不动 ...
AWVS漏洞扫描器的使用
标签云
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表