【云原生 | Docker篇】轻松学会 Docker命令(二)(上)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 【云原生 | Docker篇】轻松学会 Docker命令(二)(上)

一、常见的Docker命令



所有Docker命令手册


https://docs.docker.com/engine/reference/commandline/docker/

https://docs.docker.com/engine/reference/commandline/docker/


image.png

image.png

image.png

image.png


根据正在运行的容器制作出相关的镜像:反向


根据镜像启动一个容器:正向


有了Docker:


先去软件市场搜镜像:https://registry.hub.docker.com/ docker hub


  1. 下载镜像 docker pull xxx
  2. 启动软件 docker run 镜像名;
  3. 对于镜像的所有管理操作都在这一个命令: docker image --help


image.png

docker pull redis == docker pull redis:latest(最新版)


阿里云的镜像是从docker hub来的,我们配置了加速,默认是从阿里云(缓存)下载


REPOSITORY (名) TAG (标签)                 IMAGE ID(镜像 id ) CREATED (镜像的创建时间) SIZE
redis                            5.0.12-alpine3.13           50ae27fed589            6 days ago                                 29.3MB
redis                            latest                              621ceef7494a            2 months ago                             104MB


镜像是怎么做成的。基础环境 + 软件

redis 的完整镜像应该是: linux 系统 +redis 软件

alpine :超级经典版的 linux 5mb ; + redis = 29.0mb

没有 alpine3 的:就是 centos 基本版

以后自己选择下载镜像的时候尽量使用



alpine: slim:
docker rmi -f $(docker images -aq) #删除全部镜像
docker image prune #移除游离镜像 dangling:游离镜像(没有镜像名字的)
docker tag 原镜像:标签 新镜像名:标签 #重命名
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
docker create [设置项] 镜像名 [启动] [启动参数...]
docker create redis: 按照redis:latest镜像启动一个容器
docker kill是强制kill -9(直接拔电源);
docker stop #可以允许优雅停机(当前正在运行中的程序处理完所有事情后再停止)
docker create --name myredis -p 6379(主机的端口):6379(容器的端口) redis -p port1:port2 #port1是必须唯一的,那个是没关系的。
docker run --name myredis2 -p 6379:6379 -p 8888:6379 redis :默认是前台启动的,一般加上-d 让他后台悄悄启动, 虚拟机的很多端口绑定容器的一个端口是允许的
docker run -d == docker create + docker start
启动了 nginx ;一个容器。 docker 容器里面安装了 nginx ,要对 nginx 的所有修改都要进容器:
docker attach 绑定的是控制台. 可能导致容器停止。不要用这个 
docker exec -it -u 0:0 --privileged mynginx4 /bin/bash: 0用户,以特权方式进入容器 
docker container inspect 容器名 = docker inspect 容器 
docker inspect image /network/volume ....


一般运行中的容器会常年修改,我们要使用最终的新镜像

docker commit -a lansonli -m "first commit" mynginx4 mynginx:v4


把新的镜像放到远程docker hub,方便后来在其他机器下载


---------export操作容器/import-------------------
docker export导出的文件被import导入以后变成镜像,并不能直接启动容器,需要知道之前的启动命令 (docker ps --no-trunc),然后再用下面启动。 
docker run -d -P mynginx:v6 /docker-entrypoint.sh nginx -g 'daemon off;
' 或者docker image inspect 看之前的镜像,把 之前镜像的 Entrypoint的所有和 Cmd的连接起来就 能得到启动命令
----save/load--操作镜像--
docker save -o busybox.tar busybox:latest 把busybox镜像保存成tar文件
docker load -i busybox.tar 把压缩包里面的内容直接导成镜像
----------
镜像为什么能长久运行
镜像启动一定得有一个阻塞的进程,一直干活,在这里代理。 
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 
docker run --name myredis2 -p 6379:6379 -p 8888:6379 redis 
镜像启动以后做镜像里面默认规定的活。 
docker run -it busybox; 交互模式进入当前镜像启动的容器
---------
----产生镜像-----
1、基于已经存在的容器,提取成镜像 2、人家给了我tar包,导入成镜像 3、做出镜像
-1)、准备一个文件Dockerfile 
FROM busybox
CMD ping baidu.com
-2)、编写Dockerfile
-3)、构建镜像 
docker build -t mybusy66:v6 -f Dockerfile .
---做redis的镜像---
FROM alpine(基础镜像) 
//下载安装包 
//解压 
//准备配置文件 
CMD redis-server redis.conf
----------
build 是根据一个Dockerfile构建出镜像 
commit 是正在运行中的容器提交成一个镜像

image.png


容器的状态


Created(新建)、Up(运行中)、Pause(暂停)、Exited(退出)

docker run的立即启动,docker create得稍后自己启动


推送镜像


  • 注册docker hub并登录
  • 可以创建一个仓库,选为public
  • docker push lansonli/mynginx:tagname
  • docker hub一个完整镜像的全路径是
  • docker.io/library/redis:alpine3.13 我们的 docker.io/lansonli/mynginx:tagname
  • docker images的时候镜像缩略了全名 默认官方镜像没有docker.io/library/
  • docker.io/ rediscommander / redis-commander:latest
  • docker.io/lansonli/mynginx:v4 我的镜像的全称
  • 登录远程docker仓库
  • 当前会话登录以后 docker login 。所有的东西都会push到这个人的仓库
  • docker push lansonli/mynginx:tagname
  • 上面命令的完整版 docker push docker.io/lansonli/mynginx:v4


怎么知道是否登录了 cat ~/.docker/config.json 有没有 auth的值,没有就是没有登录

docker hub 太慢了,用阿里云的镜像仓库,或者以后的 habor 仓库


sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/lsl/mynginx: 镜像版
sudo docker push registry.cn-hangzhou.aliyuncs.com/lsl/mynginx:[镜像版本号]
仓库网址/名称空间(lsl/lansonli)/仓库名:版本号


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4天前
|
Linux 持续交付 Go
Docker常用命令总结
这篇文章总结了Docker的基本操作,包括Docker的简介、镜像、容器和仓库的概念。介绍了如何在CentOS上安装和卸载Docker,以及常用Docker命令,如查看和删除镜像、运行和管理容器、文件拷贝和日志查看。还提供了一个curl命令示例来测试本地容器服务。完整内容请参考原文链接:[Docker命令总结](https://blog.csdn.net/javayoungcoolboy/article/details/134975314)。
|
6天前
|
存储 Cloud Native 文件存储
云原生之使用Docker部署home-page个人导航页
【5月更文挑战第4天】云原生之使用Docker部署home-page个人导航页
19 1
|
2天前
|
Cloud Native 测试技术 数据安全/隐私保护
云原生之使用Docker部署Teedy轻量级文档管理系统
【5月更文挑战第8天】云原生之使用Docker部署Teedy轻量级文档管理系统
13 1
|
3天前
|
Cloud Native 测试技术 Linux
云原生之使用Docker部署homer静态主页
【5月更文挑战第7天】云原生之使用Docker部署homer静态主页
10 0
|
3天前
|
监控 Cloud Native 测试技术
云原生之使用Docker部署ServerBee服务器监控工具
【5月更文挑战第6天】云原生之使用Docker部署ServerBee服务器监控工具
12 1
|
6天前
|
Kubernetes Cloud Native 持续交付
【Docker专栏】Kubernetes与Docker:协同构建云原生应用
【5月更文挑战第7天】本文探讨了Docker和Kubernetes如何协同构建和管理云原生应用。Docker提供容器化技术,Kubernetes则负责容器的部署和管理。两者结合实现快速部署、自动扩展和高可用性。通过编写Dockerfile创建镜像,然后在Kubernetes中定义部署和服务进行应用暴露。实战部分展示了如何部署简单Web应用,包括编写Dockerfile、构建镜像、创建Kubernetes部署配置以及暴露服务。Kubernetes还具备自动扩展、滚动更新和健康检查等高级特性,为云原生应用管理提供全面支持。
【Docker专栏】Kubernetes与Docker:协同构建云原生应用
|
7天前
|
运维 Linux Shell
Docker详解(七)——Docker辅助命令
Docker详解(七)——Docker辅助命令
21 4
|
7天前
|
存储 Cloud Native 文件存储
云原生之使用Docker部署Nas-Cab个人NAS平台
【5月更文挑战第2天】云原生之使用Docker部署Nas-Cab个人NAS平台
106 1
|
7天前
|
Kubernetes Cloud Native Go
Golang深入浅出之-Go语言中的云原生开发:Kubernetes与Docker
【5月更文挑战第5天】本文探讨了Go语言在云原生开发中的应用,特别是在Kubernetes和Docker中的使用。Docker利用Go语言的性能和跨平台能力编写Dockerfile和构建镜像。Kubernetes,主要由Go语言编写,提供了方便的客户端库与集群交互。文章列举了Dockerfile编写、Kubernetes资源定义和服务发现的常见问题及解决方案,并给出了Go语言构建Docker镜像和与Kubernetes交互的代码示例。通过掌握这些技巧,开发者能更高效地进行云原生应用开发。
49 1
|
9天前
|
Cloud Native 测试技术 Linux
云原生之使用Docker部署RSS阅读器Huntly
【5月更文挑战第1天】云原生之使用Docker部署RSS阅读器Huntly
41 4