栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker技术学习 (一) 重点

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker技术学习 (一) 重点

docker hub 官网:Docker Hub 一、docker是什么

定义:Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化

 docker,其实就是可以打包程序和运行环境,把环境和程序一块发布的容器

[Build,ship and Run(搭建,发送,运行)]

[Build once, Run anywhere(搭建一次,运行到任何地方)]

二、docker 与 虚拟机比较
虚拟机容器
占用磁盘空间非常大,GB级小,MB甚至KB级
启动速度慢,分钟级快,秒级
运行形态运行与Hypervisor上直接运行在宿主主机内核上
并发性一台宿主机上十几个,最多几十个上百个,甚至数百上千个
性能逊于宿主机接近宿主机本地进程
资源利用率

注意:docker是创建管理容器的工具,是应用容器的引擎,docker本身不是容器

三、docker技术核心概念

docker技术核心的三大概念, 分别是  镜像、容器、仓库

1、镜像(image)

Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷,环境变量,用户等),镜像不包含任何动态数据,其内容在构建之后也不会被改变

2、容器(Container)

容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、停止等

镜像和容器的关系,就像面向对象程序设计中的类和实例一样,镜像是静态的定义

3、仓库 (Repository)

仓库是 集中存放镜像文件的地方

四、docker安装 1、关闭防火墙
systemctl stop firewalld
2、关闭selinux (安全增强型的Linux系统,是一个内核模块,安全的子系统)
vim /etc/selinux/config



# 修改 SELINUX
SELINUX = disabled
3、安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
4、aliyun镜像下载(国内镜像源)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5、安装docker引擎
yum install docker-ce docker-ce-cli containerd.io
6、可能遇见的报错:

 原因:podman 是centos8自带的容器,和docker是兄弟关系,这两个在一块会‘打架’

解决方法:

6.1
# 用如下命令  查看有没有podman
rpm -q podman   

默认自动安装的podman

6.2 把podman删掉
dnf remove podman

 

6.3 用yum源把podman卸载
yum erase podman buildah

注意:podman 是管理容器的工具    buildah 是容器镜像

 

 把podman工具和镜像删除后 执行

yum install docker-ce docker-ce-cli containerd.io
7、启动docker服务
systemctl start docker


# 设置docker 是开机自动启动的
systemctl enable docker
8、测试docker是否安装成功
docker run hello-world
9、配置阿里云镜像加速
sudo mkdir -p etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors":["https://vmdgahdo.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker
 五、Docker镜像和容器的命令 1、帮助命令
# 显示docker的版本信息
docker version

# 显示docker的系统信息,包括镜像和容器数量
docker info

# 帮助命令

docker --help
2、docker镜像命令
# 查看镜像
docker images


# 例如  如下
# 仓库(镜像名)   标签       镜像ID         创建时间      内存大小
# REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
# hello-world   latest    feb5d9fea6a5   4 weeks ago   13.3kB




# 镜像搜索   (是否存在此镜像)
docker serach  镜像名


# 镜像下载
docker pull 镜像名

# 删除镜像
docker rmi 源名字
docker rmi image id 
注意  可能遇见的错误 参考:Error response from daemon: conflict: unable to delete feb5d9fea6a5 (must be forced) - image is bein_宠乖仪的博客-CSDN博客 3、容器命令  3.1 新建容器并启动
docker run [可选参数] image

# 常用参数
--name # 创建容器名字用来区分容器
-d     # 后台交互式运行
-it    # 使用交互方式运行,进入容器查看内容
-p     # 指定容器端口号   例   -p 8080:8080

        -p 主机端口:容器端口
-P     # 随机指定端口



        
3.2 列出容器  (docker ps [可选参数])
docker ps # 列出当前的容器

#   容器的id    镜像名     运行镜像的命令           创建时间         容器状态         容器端口
ConTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                     NAMES
3dcffed530a3   nginx     "/docker-entrypoint.…"   16 minutes ago   Up 16 minutes   0.0.0.0:49153->80/tcp, :::49153->80/tcp   mynginx


# 注意  0.0.0.0:49153->80/tcp, :::49153->80/tcp  把本地的端口绑定到80端口


docker ps -a   # 列出所有的容器 不管是运行的还是停止的  

docker ps -f   # 过滤

docker ps -q   # 显示容器的id号

 访问一下 本地的ip及端口看一下

3.3 删除容器 
docker  rm   容器id    # 删除指定容器   如果不能删除    强制删除  rm -r
3.4 退出 
1、ctrl +C

2、# 如果docker容器在启动的时候没有加 -d 参数
   exit    # 会直接停止并退出
   
3、ctrl +q+p   # 容器不停止并退出

3.5 启动与停止容器 

docker start 容器id        # 启动容器
docker stop   容器id       # 停止容器
docker rm     容器id       # 删除容器
docker restart 容器id      # 重新启动容器
docker kill    容器id      # 强制性停止当前容器
4、例: nginx搭建 第一步:
docker search nginx

第二步: 下载nginx
docker pull nginx

 第三步: 是否下载成功
docker images

 第四步:运行nginx 
docker run [可选参数] 镜像名

上图的参数 : --name     # 指 容器的名字

                        -P              # 随机端口号

 表示nginx已启动  

第五步:查看运行的容器

 # 注意  0.0.0.0:49153->80/tcp, :::49153->80/tcp  把本地的端口绑定到80端口

访问一下 本地的ip及端口看一下

 第六步: mynginx 这个容器停止

ctrl+c

第七步:查看所有容器

第八步: 删除已有且不允许的容器
docker rm 容器id/容器名

六、其他命令 1、查看日志
docker logs --help    # 查看 里面 可用的参数 

docker logs [可选参数] 容器名容器id

2、查看容器里面进程的信息
docker top 容器id/容器名字
3、查看镜像的元数据  (容器的相关信息:网络、文件挂载情况、ip、容器的名字、镜像选择)
docker inspect 容器名/容器id
4、进入容器
方式一

docker exec -it  容器id/容器名 /bin/bash    # 开启一个新的终端,  常用


方法二

docker attach 容器id/容器名     # 进入容器正在执行的终端,不会开启新进程
5、从容器拷贝文件到主机上
docker cp 容器id:容器内路径    宿主机的目录路径

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/345621.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号