Dokcer实战讲解

docker的基本组成

概念:镜像(image)、容器(container)、仓库(repository)

安装docker步骤:

1、配置国内的yum源(这里使用的是aliyum)

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

2、配置环境以及安装准备

yum install -y gcc

yum install -y gcc-c++

yum install -y yum-utils

3、配置安装docker内置仓库以及镜像

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4、建立缓存加速

yum makecache fast

5、安装dokcer

yum install docker-ce docker-ce-cli containerd.io (首次安装时较慢,请耐心等待)

6、启动docker

systemctl start docker

(卸载docker指令:1、systemctl stop docker

2、yum remove docker-ce docker-ce-cli containerd.io

3、rm -rf /var/lib/docker

4、rm -rf /var/lib/containerd)

配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

加速器地址:

https://xxxxxxxxxxxxx.mirror.aliyuncs.com

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://rxxxxxxxxxx.mirror.aliyuncs.com"]

}

EOF

systemctl daemon-reload

systemctl restart docker

测试docker run hello-world是否运行成功(出现以下截图的表示安装成功正常)

docker run 这个指令做了什么(如图所示)

docker run 会执行两步走

1、docker run 会在本地寻找本地镜像 ==》》找到了就会直接docker run执行 否下一步

  1. docker run会在hup远程仓库寻找镜像,找到了会pull下来 再进行运行 否==》》就会返回报错,没有找到

那么docker 为什么会比VM虚拟机快呢?

docker要比虚拟机要少的抽象层( 无需实现硬件资源虚拟化,而运行docker容器上程序直接使用的是实体物理机上的硬件资源)

docker 使用的是宿主机的内核,而不需要加载操作系统OS内核

docker的常用命令

  1. 帮助启动类命令

  1. 镜像命令

  1. 容器命令

  1. 小总结

帮助启动类命令

1)systemctl start docker #启动 docker

2)systemctl stop docker #停止docker

3)systemctl restart docker #重启docker

4)systemctlstatus docker #查看docker

5)systemctl enable docker #开机启动

6)docker info #查看docker 概要信息

7)docker --help #查看docker帮助

  1. docker 具体命令 --help #查看docker命令帮助文档

镜像命令

docker images

1)docker images -a #列出本地所有的镜像 (含历史映像层)

2)docker images -q #只显示镜像ID

3)docker search #寻找名某个xxx镜像名字

4)docker pull #拉取某个镜像名字

5)docker system df #查看镜像/容器/数据卷所占的空间

6)docker rmi #删除某个xx镜像的名字ID

扩展:docker rmi -f 强制删除单个镜像ID

docker rmi -f 镜像名1:TAG 镜像名2:TAG #强制删除多个

docker rmi -f $(docker images -qa) #删除全部镜像

查看镜像显示数量

docker images --limit 5 redis

拉取镜像

docker pull 镜像文件 (如不加版本号则自动下载最新)

什么叫docker的虚悬镜像?

仓库名、标签名都是<none>的镜像,俗称是虚悬镜像dangling image

-- name= "容器新名字" 为容器指定一个个名称

-d: 后台运行容器并返回容器ID,也即启动守护容器(后台运行);

-i :以交互模式运行容器,通常与-t 同时使用

-t : 为容器重新分配一个伪输入终端,通常与-i 同时使用;

也即启动交互式容器(前台有伪终端,等待交互);

-P:随机端口映射,大写P

-p:指定端口映射,小写p

docker run -it Ubuntu /bin/bash #进入容器但名字是随机分配

docker run -it --name=myu1 ubuntu bash #自定义名字启动进入容器

docker ps的使用模式

docker ps 使用指令常用 参数

docker ps -a #列出当前所有正在运行的容器+历史上运行过的

docker ps -l #显示最近创建的容器

docker ps -n #显示最近n哥创建的容器

docker ps -q #静默模式,只显示容器编号

docker容器的两种退出方式

1、exit #run进去容器,exit退出,容器停止

2、ctrl+p+q #run进去容器,ctrl+p+q退出,容器不停止

docker启动已停止运行的容器 #docker start 容器ID或者容器名

重启容器:docker restart 容器ID或者容器名

停止容器:docker stop 容器ID或者容器名

强制停止容器:docker kill 容器ID或者容器名

删除容器:docker rm 容器ID或者容器名

强制删除:docker rm -f 容器ID或者容器名

ps:docker rm -f $(docker ps -a -q)

docker -a -q | xargs docker rm

docker run -d 容器名 可以后台运行模式 (前提是保证有一个运行进程,要不然直接使用-d 会导致容器直接挂掉)

例如使用redis前后台启动演示:

①前台交互式启动

docker run -it redis:6.0.8

②后台守护式启动

docker run -d redis:6.0.8

扩展:docker logs +images名 #查看 容器的日志内容信息

docker top +images名 #查看容器内的资源使用情况

docker inspect images名 #查看容器内的资源使用情况 精细版


对于使用 ctrl+p+q #run进去容器,ctrl+p+q退出,容器不停止后如何回复到原来的容器内的操作

推荐使用这个docker exec -it +容器ID /bin/bash #重新回到容器内 如果使用exit 退出的话 不会导致容器的停止

重新进入docker attach 容器ID #重新回到容器内 如果使用exit 退出的话 会导致容器的停止

对于使用redis 进行容器进行查看操作

docker exec -it f1fce83e61c3 /bin/bash

redis-cli

从容器内拷文件到主机

docker cp 容器ID: 容器内路径 目的主机路径

案例:[root@agent ~]# docker cp 1c59cbf6721a:/tmp/a.txt /tmp

docker export用法:

export 导出容器的内容留作为一个tar归档文件【对应import命令】

import 从tar包中的内容创建一个新的文件系统再导入为镜像【对应export】

案例:dockerexport容器ID > 文件名.tar

cat 文件名.tar | docker import-镜像用户/镜像名:镜像版本号

简单说:将整个容器打包成一个tar文件传输到本地

docker export 容器ID > abcd.tar.gz

docker export 容器ID > 文件名.tar.gz 格式

--

将正在运行的容器误删除后如何将其恢复?

1)cat 已压缩打包.tar | docker import -镜像用户/镜像名:镜像版本号 #备份原有镜像并重新命名,把已有存在的镜像恢复

例如:cat abcd.tar | docker import - longqixiren/ubuntu:3.7

深度|docker 镜像:

概念:docker 镜像:是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(代码、运行时需要的库、环境变量和配置文件)将这个打包好的运行环境就说images镜像文件

只有通过这个镜像文件才能生成docker容器实例(类似Java中new出来一个对象)

2022/12/30

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值