Linux之Docker-01
一、镜像基础命令
1、docker version
[root@DY-Ubuntu-01 ~]#docker version #查看 Docker 版本
2、docker info
[root@DY-Ubuntu-01 ~]#docker info
Client:
Context: default
Debug Mode: false #client 端是否开启 debug
Server:
Containers: 0 #当前主机运行的容器总数
Running: 0 #有几个容器是正在运行的
Paused: 0 #有几个容器是暂停的
Stopped: 0 #有几个容器是停止的
Images: 0 #当前服务器的镜像数
Server Version: 20.10.19 #服务端版本
Storage Driver: overlay2 #正在使用的存储引擎
Backing Filesystem: xfs #后端文件系统,即服务器的磁盘文件系统
Supports d_type: true #是否支持 d_type
Native Overlay Diff: true #是否支持差异数据存储
userxattr: false
Logging Driver: json-file #日志类型
Cgroup Driver: cgroupfs #Cgroups 类型
Cgroup Version: 1
Plugins: #插件
Volume: local #卷
Network: bridge host ipvlan macvlan null overlay # overlay 跨主机通信
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog # 日志类型
Swarm: inactive #是否支持 swarm
Runtimes: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux #已安装的容器运行时
Default Runtime: runc #默认使用的容器运行时
Init Binary: docker-init #初始化容器的守护进程,即 pid 为 1 的进程
containerd version: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6 #版本
runc version: v1.1.4-0-g5fd4c4d1 #runc 版本
init version: de40ad0 #init 版本
Security Options: #安全选项
apparmor #安全模块,https://docs.docker.com/engine/security/apparmor/
seccomp #安全计算模块,即制容器操作,https://docs.docker.com/engine/security/seccomp
Profile: default #默认的配置文件
Kernel Version: 5.4.0-126-generic #宿主机内核版本
Operating System: Ubuntu 20.04.4 LTS #宿主机操作系统
OSType: linux #宿主机操作系统类型
Architecture: x86_64 #宿主机架构
CPUs: 2 #宿主机 CPU 数量
Total Memory: 3.84GiB #宿主机总内存
Name: DY-Ubuntu-01 #宿主机 hostname
ID: YZQ6:756A:YPQR:XKA7:POII:EQ6Z:KUPN:BHPK:Q6QK:GYCX:56RA:PWJY #宿主机 ID
Docker Root Dir: /var/lib/docker #宿主机关于docker数据的保存目录
Debug Mode: false #server 端是否开启 debug
Registry: https://index.docker.io/v1/ #仓库路径
Labels:
Experimental: false #是否测试版
Insecure Registries:
127.0.0.0/8 #非安全的镜像仓库
Registry Mirrors:
https://pgavrk5n.mirror.aliyuncs.com/ #镜像仓库
Live Restore Enabled: false #是否开启活动重启 (重启docker-daemon 不关闭容器 )
Product License: Community Engine
WARNING: No swap limit support #系统警告信息 (没有开启 swap 资源限制 )
范例: 解决SWAP报警提示 " WARNING: No swap limit support "
[root@DY-Ubuntu-01 ~]#vim /etc/default/grub
[root@DY-Ubuntu-01 ~]#update-grub
[root@DY-Ubuntu-01 ~]#reboot
3、docker search、pull
[root@DY-Ubuntu-01 ~]#docker search nginx #搜索nginx镜像,默认版本latest默认从docker官网搜索
[root@DY-Ubuntu-01 ~]#docker pull nginx #拉取nginx镜像,默认从docker官网拉取
[root@DY-Ubuntu-01 ~]#docker image history nginx #查看镜像分层历史
[root@DY-Ubuntu-01 ~]#docker inspect nginx #查看镜像详细信息
[root@DY-Ubuntu-01 ~]#docker save nginx -o nginx.tar #导出nginx镜像
[root@DY-Ubuntu-01 ~]#docker images #列出镜像文件
[root@DY-Ubuntu-01 ~]#docker search -f=stars=100 nginx #搜索点赞大于100的nginx镜像
[root@DY-Ubuntu-01 ~]#docker search --limit 3 nginx #搜索三个结果
[root@node1 ~]# docker run -it -d --name alpine-1 --rm alpine #后台交互运行一个名称为alpine-1的alpine容器,停止容器后删除容器
[root@node1 ~]# docker exec -it alpine-1 /bin/sh #进入alpine-1容器,指定bash类型为sh
/ # vi /etc/apk/repositories #修改源替换成阿里源
https://mirrors.aliyun.com/alpine/v3.15/main
https://mirrors.aliyun.com/alpine/v3.15/community
/ # apk update #更新源
/ # apk add vim #安装软件
/ # apk del openssh #删除软件
/ # apk info nginx #显示软件的详细信息
/ # apk manifest nginx #显示校验
# Debian(ubuntu)系统建议安装的基础包
# apt update #安装软件前需要先更新索引
# apt install procps #提供top,ps,free等命令
# apt install psmisc # 提供pstree,killall等命令
# apt install iputils-ping #提供ping命令
# apt install net-tools #提供netstat网络工具等
# apt install iproute2 #提供ip,ss网络工具等
[root@node1 ~]# docker pull hello-world
Using default tag: latest #默认下载最新版本
latest: Pulling from library/hello-world
2db29710123e: Pull complete #分层下载
Digest: sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f #摘要
Status: Downloaded newer image for hello-world:latest #状态
docker.io/library/hello-world:latest #下载的完整地址
[root@node1 ~]# ll /var/lib/docker/overlay2/镜像ID #镜像下载保存的路径
注意: 镜像下载完成后,会自动解压缩,比官网显示的可能会大很多,如: centos8.1.1911下载时只有70MB,下载完后显示237MB
4、阿里云加速
浏览器打开http://cr.console.aliyun.com,注册或登录阿里云账号,点击左侧的镜像加速器,将会得到一个专属的加速地址,而且有使用配置说明
修改daemon配置文件/etc/docker/daemon.json来使用加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com/","https://si7y70hh.mirror.aliyuncs.com"]
}
EOF
#网易云: http://hub-mirror.c.163.com/
#中科大: https://docker.mirrors.ustc.edu.cn
#腾讯云: https://mirror.ccs.tencentyun.com
#七牛云: https://reg-mirror.qiniu.com
systemctl daemon-reload
systemctl restart docker
5、查看本地镜像
[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
REPOSITORY #镜像所属的仓库名称
TAG #镜像版本号(标识符),默认为latest
IMAGE ID #镜像唯一ID标识,如果ID相同,说明是同一个镜像有多个名称
CREATED #镜像在仓库中被创建时间
VIRTUAL SIZE #镜像的大小
[root@node1 ~]# docker images -q #查看镜像id
c059bfaa849c
feb5d9fea6a5
[root@node1 ~]# docker images --no-trunc #显示完整的ImageID
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest sha256:c059bfaa849c4d8e4aecaeb3a10c2d9b3d85f5165c66ad3a4d937758128c4d18 10 months ago 5.59MB
hello-world latest sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412 12 months ago 13.3kB
[root@node1 ~]# docker image inspect alpine #查看指定镜像的详细信息
6、镜像导出
#导出单个镜像
#方法1
[root@node1 ~]# docker save -o alpine.tar alpine
#方法2
[root@node1 ~]# docker save alpine > alpine1.tar
=========================
#导出多个镜像至一个文件
#方法1
[root@node1 ~]# docker save -o all1.tar alpine hello-world
#方法2
[root@node1 ~]# docker save alpine hello-world -o all.tar
#方法3
[root@node1 ~]# docker save alpine hello-world > all2.tar
==========================
#导出所有镜像至一个文件
#方法1
[root@node1 ~]# docker save `docker images | awk 'NR>1{print $1":"$2}'` -o all4.tar #导出所有镜像到一个打包文件,此方法导入后可以看REPOSITORY和TAG
#方法2
[root@node1 ~]# docker image save `docker image ls --format "{{.Repository}}:{{.Tag}}"` -o all5.tar
#将所有镜像导入到一个文件中,此方法导入后可以看REPOSITORY和TAG
============================
#导出所有镜像至不同的文件中
#方法1
[root@node1 ~]# docker images | awk 'NR!=1{print $1,$2}' | while read repo tag ;do docker save ${repo}:${tag} -o ${repo}-${tag}.tar; done #导出所有镜像至不同的文件中
#方法2
[root@node1 ~]# for i in `docker images --format "{{.Repository}}:{{.Tag}}"`; do docker save $i -o `echo $i|cut -d: -f1`.tar; done #导出所有镜像至不同的文件中
7、镜像导入
#方法1
[root@DY-Ubuntu-01 ~]#docker load -i all5.tar
#方法2
[root@DY-Ubuntu-01 ~]#docker load < all5.tar
8、删除镜像
[root@DY-Ubuntu-01 ~]#docker rmi nginx
[root@DY-Ubuntu-01 ~]#docker rmi -f hello-world #强制删除正在使用的镜像,也会删除对应的容器
[root@DY-Ubuntu-01 ~]#docker rmi nginx httpd #删除多个镜像
================================================
[root@node1 ~]# docker image prune #清理dangling虚无镜像(没被标记且没被其它任何镜像引用的镜像)
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B
[root@node1 ~]# docker image prune -a -f #清理dangling虚无镜像以及不再使用的镜像
Deleted Images:
untagged: hello-world:latest
untagged: hello-world@sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412
deleted: sha256:e07ee1baac5fae6a26f30cabfe54a36d3402f96afda318fe0a96cec4ca393359
untagged: nginx:latest
untagged: nginx@sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
deleted: sha256:605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85
deleted: sha256:b625d8e29573fa369e799ca7c5df8b7a902126d2b7cbeb390af59e4b9e1210c5
deleted: sha256:7850d382fb05e393e211067c5ca0aada2111fcbe550a90fed04d1c634bd31a14
deleted: sha256:02b80ac2055edd757a996c3d554e6a8906fd3521e14d1227440afd5163a5f1c4
deleted: sha256:b92aa5824592ecb46e6d169f8e694a99150ccef01a2aabea7b9c02356cdabe7c
deleted: sha256:780238f18c540007376dd5e904f583896a69fe620876cabc06977a3af4ba4fb5
9、镜像打标签
#TARGET_IMAGE[:TAG]格式一般形式
仓库主机FQDN或IP[:端口]/项目名(或用户名)/image名字:版本
[root@DY-Ubuntu-01 ~]#docker tag alpine alpine:10.15
10、命令总结: 企业使用镜像及常见操作: 搜索、下载、导出、导入、删除
docker search centos
docker pull alpine
docker images
docker save > /opt/centos.tar #centos #导出镜像
docker load -i /opt/centos.tar #导入本地镜像
docker rmi 镜像ID/镜像名称 #删除指定ID的镜像,此镜像对应容器正启动镜像不能被删除,除非将容器全部关闭
Linux之Docker-01的更多相关文章
- 使用VS把ASP.NET 5的应用发布到Linux的Docker上
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:我相信未来应用程序的部署模式首选一定会是Docker,所以.NET社区的朋友也不应该忽 ...
- Linux网络服务01——Linux网络基础设置
Linux网络服务01--Linux网络基础设置 一.查看及测试网络 1.使用ifconfig命令查看网络接口 (1)查看活动的网络接口 ifconfig命令 [root@crushlinux ~]# ...
- Linux(Manjaro) - Docker - MySQL 安装配置
Linux(Manjaro) - Docker - MySQL 安装配置 拉取mysql镜像 # 使用网易的 MySQL 镜像地址 docker pull hub.c.163.com/library/ ...
- 【Docker】(3)---linux部署Docker、Docker常用命令
linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ...
- 将自己的SpringBoot应用打包发布到Linux下Docker中
目录 将自己的SpringBoot应用打包发布到Linux下Docker中 1. 环境介绍 2. 开始前的准备 2.1 开启docker远程连接 2.2 新建SpringBoot项目 3. 开始构建我 ...
- linux --- 9. docker 容器 和 rabbitmq 队列
一. docker 容器 1.docker是什么? .linux下容器技术有很多,docker是做的最杰出的一款 .docker能够支撑阿里双十一,京东618的业务,说明,性能,安全性不得差 .doc ...
- Linux 生产实习01
Linux 生产实习01 标签(空格分隔): Linux 2018.07.02 相关软件下载地址:Linux Study 0x01. 安装 VMware Workstation VMware Work ...
- Linux通过docker安装运行酷Q--用QQ骰子君进行跑团
Linux通过docker安装运行酷Q 文:铁乐与猫 需求:和小伙伴周末进行愉快的TRPG跑团,需要在QQ讨论组上加了qq小号后,将qq小号用酷Q配合投骰的应用变成骰子君. 限制:我个人的云计算服务器 ...
- vs2017创建netcore项目,部署到linux的docker容器里面
开发环境 1.win10下面安装VS2017 2.linux安装Ubuntu16.4系统 步骤: 第一步:linux安装docker容器 docker中文文档,里面有详解的docker介绍及讲解,建议 ...
- Linux下docker的安装
前言: 因为之前在自己的mac上直接使用HomeBrew的包管理安装的,使用brew install docker即可,这种方法简单,但最近想尝试在Linux下安装,费了一些时间,主要是启动docke ...
随机推荐
- Word 段前分页是什么?怎么设置?
描述 这两个标题在第一个标题的页中,且两个标题都没有独立分页.要让每一个标题独立分页,需要对标题的格式进行修改. 段前分页指的是标题与标题之间不在同一个页中,每一个标题都在独立的页中. 设置段前分页 ...
- 牛客CSP-S模拟题——十二桥问题
题面 n <= 50000,m <= 200000,k <= 12 题解 可以从K条边的两端和1结点出发各进行一次O(nlogn)的Dijk,然后就浓缩成了一个最多只有25个点的小完 ...
- C# 使用if(DEBUG)调试 失效问题
在调试winform程序的时候,经常会切换debug和release模式.有些时候在debug模式下不想用的东西就会使用 #if(!DEBUG) #endif 但是这次在新项目的时候,使用这个语句,失 ...
- QPanter 绘画
Qpainter 绘图 1 绘图事件 void paintEvent(QPaintEvent *event) 2 声明一个画家对象 QPainter painter(this) this 指定绘图设 ...
- JavaScript 设计模式及代码实现——代理模式
代理模式 1 定义 为其他对象提供一种代理以控制对这个对象的访问 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 2 应用举例 2.1 缓 ...
- 第五十八篇:webpack的Source Map
好家伙,Source Map没听过 1.什么是Source Map? 字面意义上来看应该是个好东西 Source Map 就是一个信息文件,里面储存着位置信息. 也就是说,Source Map 文件中 ...
- KingbaseES R3集群在线删除数据节点案例
案例说明: kingbaseES R3集群一主多从的架构,一般有两个节点是集群的管理节点,所有的节点都可以为数据节点:对于非管理节点的数据节点可以在线删除:但是对于管理节点,无法在线删除,如果删除管理 ...
- 大家都在用MySQL count(*)统计总数,到底有什么问题?
在日常开发工作中,我经常会遇到需要统计总数的场景,比如:统计订单总数.统计用户总数等.一般我们会使用MySQL 的count函数进行统计,但是随着数据量逐渐增大,统计耗时也越来越长,最后竟然出现慢查询 ...
- Kubernetes DevOps: Harbor
Harbor 是一个 CNCF 基金会托管的开源的可信的云原生 docker registry 项目,可以用于存储.签名.扫描镜像内容,Harbor 通过添加一些常用的功能如安全性.身份权限管理等来扩 ...
- 使用logstash同步Mysql数据表到ES的一点感悟
针对单独一个数据表而言,大致可以分如下两种情况: 1.该数据表中有一个根据当前时间戳更新的字段,此时监控的是这个时间戳字段 具体可以看这个文章:https://www.cnblogs.com/sand ...