当前位置: 首页 > article >正文

Docker安装、Docker基本操作

一、Dokcer安装

1.安装

# 1、yum 包更新到最新,需要几分钟时间(注意:也可以直接跨过)
sudo yum update
# 2、作用:安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
# 3.1、方案一:使用ustc的(默认的)
sudo yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
# 3.2、方案二:使用阿里云(推荐使用)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4、 安装docker;出现输入的界面都按 y
sudo yum install -y docker-ce
# 5、 查看docker版本
docker -v

2.设置镜像加速器

默认的镜像是ustc,而ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。
https://lug.ustc.edu.cn/wiki/mirrors/help/docker

1、 编辑文件/etc/docker/daemon.json

# 执行如下命令:
mkdir /etc/docker  表示创建一个文件夹
#如果有该文件则进入编辑状态,如果没有,则创建该文件然后进入编辑状态
vi /etc/docker/daemon.json  

2、在当前文件中加入阿里云的加速器

{
  "registry-mirrors": ["https://7oc12mqc.mirror.aliyuncs.com"]
}
注意:[“自己的镜像加速器地址”]

注意:docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

4、重启操作

sudo systemctl daemon-reload
sudo systemctl restart docker

3.Docker启动与停止命令

Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!

启动docker前,一定要关闭防火墙后!!

启动docker前,一定要关闭防火墙后!!

启动docker前,一定要关闭防火墙后!!

# 启动docker服务:
systemctl start docker
# 停止docker服务:
systemctl stop docker
# 重启docker服务:
systemctl restart docker
# 查看docker服务状态:
systemctl status docker
# 设置开机启动docker服务:
systemctl enable docker

#查看防火墙状态
systemctl status firewalld.service
#停止防火墙--临时停止
systemctl stop firewalld.service
#停止防火墙-终止
systemctl disable firewalld.service
#启动防火墙
systemctl start firewalld.service

二、Docker基本操作

2.1.镜像操作

2.1.1.镜像名称

首先来看下镜像的名称组成:

  • 镜名称一般分两部分组成:[repository]:[tag]。
  • 在没有指定tag时,默认是latest,代表最新版本的镜像

如图:
在这里插入图片描述

这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版本的MySQL镜像。

2.1.2.镜像命令

常见的镜像操作命令如图:
在这里插入图片描述

常用镜像命令集:

#查看本地镜像
docker images 
# 如果你需要从网络中查找需要的镜像,可以通过以下命令搜索
docker search 镜像名称
# 拉取镜像就是从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本 
docker pull 镜像名称

# 可以按照镜像id删除镜像,命令如下:
docker rmi 镜像id
# 删除所有镜像,注意:包含着docker images -q的符号是波浪号那个键
docker rmi `docker images -q`

镜像迁移与备份命令:

其中涉及到的命令有:

​ docker commit 将容器保存为镜像

​ docker save 将镜像备份为tar文件

​ docker load 根据tar文件恢复为镜像

容器保存为镜像命令

#命令形式:
docker commit 现有容器名称  镜像名称

注意:该容器必须是停止状态。并且当前本地镜像中没有该镜像名称

将镜像备份成tar文件命令

#命令形式:
docker save –o tar文件名 镜像名
#-o 输出到的文件

根据tar文件恢复为镜像命令

#命令形式:
docker load -i tar文件名 
#-i 输入的文件

2.2容器操作

2.2.1.容器相关命令

容器操作的命令如图:
在这里插入图片描述
容器保护三个状态:

  • 运行:进程正常运行
  • 暂停:进程暂停,CPU不再运行,并不释放内存
  • 停止:进程终止,回收进程占用的内存、CPU等资源

容器,也是docker中的核心概念,容器是由镜像运行产生的运行实例。镜像和容器的关系,就如同Java语言中类和对象的关系。

Docker提供的关于容器的操作有:
查看容器

#查看正在运行的容器使用命令
docker ps
#查看所有容器使用命令
docker ps -a 

​ 创建容器

#创建并运行一个容器,处于运行状态
docker run 

​ 进入容器内部

docker exec -it 容器名称 bash

​ 启动容器

docker start 容器名称[或者容器ID]

​ 停止容器

docker stop 容器名称[或者容器ID]

​ 文件拷贝

将linux宿主机中的文件拷贝到容器内可以使用命令:

#第一步, 在Linux中创建一个文件abc.txt
touch abc.txt

#第二步,复制abc.txt到nginx的容器的   /表示根目录
docker cp 文件名称 容器名称:/ 
#示例:
docker cp abc.txt nginx:/
#第三步, 进入nginx容器
docker exec -it nginx /bin/bash
# 第四步,查看容器 / 目录下文件 是否有该文件
ls

docker这个命令是在linux系统中安装的,所以说容器中没有docker这个命令

将文件从容器内拷贝出来到linux宿主机使用命令:

# docker cp 容器名称:容器目录 需要拷贝的文件或目录
#进入容器后创建文件cba.txt
touch cba.txt
# 退出容器
exit
# 在Linux宿主机器执行复制;将容器mycentos2的/cba.txt文件复制到 宿主机器的/root目录下
docker cp nginx:/cba.txt  /root

​ 查看容器ip地址

可以通过以下命令查看容器运行的各种数据 docker inspect 容器名称(容器ID)

# 在linux宿主机下查看 nginx 的ip 
docker inspect nginxclear

删除容器

#删除指定的容器:
docker rm 容器名称(容器ID) 
#删除所有容器:
docker rm `docker ps -a -q` 

注意:只能删除停止状态下的容器

暂停容器:

#让一个运行的容器暂停
docker pause nginx

让一个容器从暂停状态恢复运行

docker unpause nginx

2.3数据卷(容器数据管理)

数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。
在这里插入图片描述
一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。

这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了

2.3.1.挂载数据卷

我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器内目录,命令格式如下:

docker run \
  --name mn \
  -di \
  -v html:/root/html \
  -p 8080:80 \
  nginx 

这里的-v就是挂载数据卷的命令:

  • -v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中

http://www.kler.cn/a/18425.html

相关文章:

  • [项目代码] YOLOv5 铁路工人安全帽安全背心识别 [目标检测]
  • [ Linux 命令基础 3 ] Linux 命令详解-文件和目录管理命令
  • c/c++--struct对比
  • 行业类别-智能制造-子类别工业4.0-细分类别物联网应用-应用场景智能工厂建设
  • 速盾:游戏盾的功能和原理详解
  • 【大数据学习 | HBASE高级】region split机制和策略
  • 一名【合格】前端工程师的自检清单
  • 麒麟KylinV10SP1(2203)推荐安装一些硬件监控类软件与使用
  • Socks5 协议简介
  • HTTP第三讲——四层模型、七层模型
  • ChatGPT会对我们日常生活带来什么影响?这些技术会改变我们学习阅读工作方式吗?
  • Netty基础(二)
  • 分析vmlinux编译过程
  • Android 自定义View实战—制作一个简易输入框
  • Python 面向对象
  • 关于百度地图开放平台api覆盖物“自定义Marker图标”不能正常显示的解决方案
  • 实验二 存储器管理
  • 探究Qt Quick之Overlay类的魅力
  • Docker 配置记录
  • 【tkinter 专栏】专栏前言
  • 如何更改Windows 10操作系统的默认字体
  • gitlab服务器发送邮件配置
  • 第四天作业
  • 【Leetcode -412.Fizz Buzz -414.第三大的数】
  • Python--一言不合就try一下?
  • 论文ai生成-一键生成论文的软件