Docker基础(一)

文章目录

      • 1. 基础概念
      • 2. 安装docker
      • 3. docker常用命令
        • 3.1 帮助命令
        • 3.2 镜像命令
        • 3.3 容器命令
        • 3.4 其他命令
      • 4. 使用案例

1. 基础概念

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

ArquiteturaDocker-1024x524.png

2. 安装docker

https://docs.docker.com/engine/install/centos/

  1. 卸载旧的docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 安装gcc环境
yum -y install gcc
yum -y install gcc-c++
  1. 安装docker需要的仓库地址配置
yum install -y yum-utils

#国外源比较慢
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 国内镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装docker
#更新yum索引
yum makecache fast

# 安装docker
yum install -y docker-ce docker-ce-cli containerd.io
  1. 启动docker
systemctl start docker
  1. 测试安装是否成功
docker run hello-world

卸载docker

systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

查看下载的镜像

docker images

3. docker常用命令

docker info

docker version

3.1 帮助命令
docker --help

docker run --help

3.2 镜像命令
# 展示所有镜像
docker images 
# 展示所有镜像
docker images -a  
# 只展示镜像id
docker images -q
# 在docker Hub中搜索镜像
docker search 镜像名称
# 搜索star不小于50的镜像
docker search --filter=STARS=50
# 下载指定镜像
docker pull 镜像名称
# 移除镜像
docker rmi 镜像名称/镜像id
# 强制删除
docker rmi -f 镜像名称/镜像id
# 强制删除所有镜像
docker rmi -f $(docker images -aq)

3.3 容器命令
# 查看运行中容器
docker ps
# 查看所有容器
docker ps -a
# 查看容器的id
docker ps -q
# 创建容器,如果镜像不存在则会自动pull下载镜像
docker run 镜像名称
# 常用参数
--name="Name"  可以给容器起一个名字
-d             容器后台启动
-i             用交互的方式启动 
-t             给容器分配一个终端登录使用  bin/bash
-p             指定端口映射(主机访问的端口,容器端口)
-e             环境配置在hub.docker.com中查看
# 可选参数组合使用
docker run -itd 镜像名称/镜像id
# 后台拉起容器
docker run -d 镜像名称/镜像id
# 交互式启动登录
docker run -it 镜像名称/镜像id
# 退出容器,容器停止运行。使用ctrl+P+Q不会停止运行
exit
docker start 镜像名称/镜像id
docker restart 镜像名称/镜像id
docker stop 镜像名称/镜像id
docker kill 镜像名称/镜像id
# 删除容器
docker rm 容器名/容器id
# 删除所有容器
docker rm -f $(docker ps -aq)
# 如果这个容器里面没有前台进程,直接通过-d启动,就会退出
docker run -d centos
# 交互方式后台启动
docker run -d -it centos /bin/bash

3.4 其他命令
# 查看容器运行日志,ctrl+z终止执行
docker logs --help
-t 打印时间戳
-f 打印最新的日志
# 查看容器相关的进程
docker top 容器id
# 查看容器的元数据
docker inspect 容器id
# 进入一个正在执行的容器
docker exec -it 容器id /bin/bash
# 进入容器正在执行的终端
docker attach 容器id

区别:
exec时在容器打开新的终端,并且可以启动新的进程
attach直接进入容器启动命令的终端,不会启动新的进程

# 拷贝容器内的文件到主机
docker cp 容器id:文件路径 本机路径

image.png

4. 使用案例

安装运行nginx镜像

docker pull nginx

docker run nginx

docker run -d --name zsq-nginx -p 3500:80 nginx

docker ps

docker exec -it 容器 /bin/bash

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/413247.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pytest-配置项目不同环境URL

pytest自动化中,在不同环境进行测试,可以将项目中的url单独抽取出来,通过pytest.ini配置文件实现(类似postman中的“Environments”) 使用步骤: 1)安装pytest-base-url插件 pytest-base-url …

【目标检测新SOTA!v7 v4作者新作!】YOLO v9 思路设计 + 全流程优化 + 手把手训练自己数据

YOLO v9 思路复现 全流程优化 手把手训练自己数据 提出背景:深层网络的 信息丢失、梯度流偏差YOLO v9 设计逻辑可编程梯度信息(PGI):使用PGI改善训练过程广义高效层聚合网络(GELAN):使用GELAN…

J.绝妙的平衡

解题思路 对于一个以染成红色的点为根的子树,要使其权值之和为3的倍数则与其子树中的红色点无关,至于白色点数有关若除去子树中的红色点后,剩余包括其自身共有k个若,则无解,即只有一个红色叶子点若,则除自…

linux查看socket信息

netstat netstat 是一个用于显示网络相关信息的命令行工具。它可以显示当前系统的网络连接状态、路由表、接口统计信息等。 下面是一些常见的 netstat 命令选项和用法: 显示所有活动的网络连接: netstat -a 显示所有正在监听的端口: ne…

局域网技术

目录 一、网络的定义 1、网络的基本概念: 2、不同类型的网络: 二、局域网发展 1、对局域网的研究是从20世纪60年代开始的: 2、英国剑桥大学计算机研究室:剑桥环局域网: 3、DatePoint公司推出用于办公系统的&…

MATLAB环境下一种改进的瞬时频率(IF)估计方法

相对于频率成分单一、周期性强的平稳信号来说,具有非平稳、非周期、非可积特性的非平稳信号更普遍地存在于自然界中。调频信号作为非平稳信号的一种,由于其频率时变、距离分辨率高、截获率低等特性,被广泛应用于雷达、地震勘测等领域。调频信…

远程连接Redis

以连接阿里云上的Redis为例 1. 在阿里云安全组中开放端口 2.修改Redis启动时所用的配置文件(redis.conf) 2.1 修改ip地址 如图:将默认的本地ip bind 127.0.0.1地址改为bind 0.0.0.0 2.2 将保护模式关闭 将默认的 supervised yes 改为 n…

JAVA IDEA 项目打包为 jar 包详解

前言 如下简单 maven 项目,现在 maven 项目比较流行,你还没用过就OUT了。需要打包jar 先设置:点击 File > Project Structure > Artifacts > 点击加号 > 选择JAR > 选择From modules with dependencies 一、将所有依赖和模…

如何将本地项目上传到github上

将本地项目上传到github上有很多种方法,这里只讲述我认为最简单快捷的一种,先在github中创建一个仓库,接着在本地建文件夹,用命令行将项目推送到本地仓库,然后连接远程仓库,将本地项目推送到远程仓库上。要…

vue3 + TS + vite 搭建中后台管理系统(开箱即用)

[TOC](vue3 TS vite 搭建中后台管理系统) 开箱即用 前言 要成功,先发疯,头脑简单往前冲! 三金四银,金九银十,多学知识,也不能埋头苦干,要成功,先发疯,头脑简单往前冲…

苍穹外卖Day02——解决总结2中存在的问题

解决Day02中存在的问题 1. BeanUtils类2. DigestUtils类3. LocalDateTime类4. ThreadLocal类5.扩展Spring MVC框架的消息转化器 1. BeanUtils类 项目应用:属性拷贝 目的:在新增分类中为了减少类category中的setXXX()次数,使用了BeanUtils类中…

TC3xx SMU与TLF35584如何协同工作(2)

目录 1.概述 2.TLF35584的安全控制 3.实例 1.概述 上一篇,我们讲了SMU的基本概念,这一节讲TLE35584,并且我们可以通过这颗芯片的设计思路、引脚命名和功能,可以看到,要设计一块好用的车规MCU,光只有MCU还…

BUUCTF crypto做题记录(9)新手向

一、rsa2 得到题目代码如下: N 101991809777553253470276751399264740131157682329252673501792154507006158434432009141995367241962525705950046253400188884658262496534706438791515071885860897552736656899566915731297225817250639873643376310103992170…

Jupyterlab 和 JupyternoteBook 修改默认路径

Jupyterlab 和 JupyternoteBook 修改默认路径 在使用 JupyterLab 或 Jupyter Notebook 进行数据分析、机器学习项目时,经常会遇到需要修改默认工作目录的需求。默认情况下,JupyterLab 和 Jupyter Notebook 会在启动时打开你的用户目录(例如&…

idea生成WebServices接口

文章目录 idea生成WebServices接口1.创建接口2.生成wsdl文件3.在soapUI中,生成6个文件4.将生成的文件拷贝到工程中5.在service-config中注册服务 idea生成WebServices接口 1.创建接口 新建一个webServices工程,按照接口规范生成接口、请求类、响应类。…

Qt的QThread、QRunnable和QThreadPool的使用

1.相关描述 随机生产1000个数字,然后进行冒泡排序与快速排序。随机生成类继承QThread类、冒泡排序使用moveToThread方法添加到一个线程中、快速排序类继承QRunnable类,添加到线程池中进行排序。 2.相关界面 3.相关代码 widget.cpp #include "widget…

Ubuntu20.04安装Carla0.9.15

文章目录 环境要求下载Carla解压Carla运行Carla测试官方用例创建python环境安装依赖包案例:生成车辆案例:测试自动驾驶 参考链接 环境要求 系统配置要求: 至少3G显存的GPU,推荐3060及以上的显卡进行Carla拟真。预留足够的硬盘空…

centos7挂载磁盘分区

centos7挂载磁盘分区 当前系统centos7 PV,VG,LV构成了一种易于管理拥有一个或多个硬盘的主机的文件系统,这些硬盘可能只有一个分区也可能有多个。通过将这些物理存在的分区(或称为卷)PV(physical volume)进行整合,组成一个分区(卷)组VG(volume group)&a…

python:xml.etree.ElementTree 读 Freeplane.mm文件,生成测试案例.csv文件

Freeplane 是一款基于 Java 的开源软件,继承 Freemind 的思维导图工具软件,它扩展了知识管理功能,在 Freemind 上增加了一些额外的功能,比如数学公式、节点属性面板等。 强大的节点功能,不仅仅节点的种类很多&#xf…