安装Docker

本文详细介绍了如何安装Docker,包括设置阿里云镜像加速、安装Docker-CE及配置用户组。此外,还列举了Docker常用命令,如拉取、删除镜像,管理容器,以及创建和使用Dockerfile创建镜像。最后,讲解了Dockerfile的指令说明,帮助读者深入理解Docker镜像的构建过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装Docker

一、安装与配置

  1. 安装依赖包

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2 
    
  2. 设置阿里云镜像

    sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
    
  3. 重建Yum缓存

    yum clean all
    yum makecache
    #升级包
    yum update -y
    
  4. 安装Docker-CE

    sudo yum install -y docker-ce
    
  5. 启动Docker-CE

    sudo systemctl enable docker
    sudo systemctl start docker
    
  6. 为Docker建立用户组【可选操作】

    ​ docker 命令与 Docker 引擎通讯之间通过 UnixSocket ,但是能够有权限访问 UnixSocket 的用户只有 root 和 docker 用户组的用户才能够进行访问。docker安装的时候,会建立docker用户组。若没有,可自己建立

    1. 建立Docker用户组

      #查看是否建立用户组
      cat /etc/group |grep docker
      # 新建Docker用户组
      sudo groupadd docker
      
    2. 添加当前用户到docker用户组

      sudo usermod -aG docker $USER
      
  7. 镜像加速设置

    ​ 这里使用的是 阿里云提供的镜像加速 ,登录并且设置密码之后可以找到专属加速器地址,复制下来。执行如下命令

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["你的加速器地址"]
    }
    EOF
    
    #重新加载配置,并且重启 Docker 服务
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

二、Docker常用命令

拉取镜像
#拉取mysql5.7的镜像
docker pull mysql:5.7

docker pull <镜像名:tag>
# 例如以下代码
docker pull sameersbn/redmine:latest
##从非官方的仓库下载,需要在仓库名称前指定完整的仓库地址。如:
docker pull hub.c.163.com/public/ubuntu:18.04
删除容器
docker rm <容器ID或名称>
查看容器日志
docekr logs -f <容器名 or ID>
查看正在运行的容器
docker ps    # 查看正在运行的容器
docker ps -a # 查看所有的容器,包括已经停止的
删除所有容器
docker rm $(docker ps -a -q)
停止、启动、杀死指定容器
docker start <容器名 or ID> # 启动容器
docker stop <容器名 or ID> # 停止容器
docker kill <容器名 or ID> # 杀死容器
查看所有镜像
## 列出本地主机上已有镜像的基本信息
docker images
docker image ls

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2MY3kpqR-1615166660541)(E:\工作文档\image-20210220111928898.png)]

列出的信息:

  • REPOSITORY:来自于那个仓库
  • TAG:镜像的标签信息
  • IMAGE ID:镜像的ID
  • CREATED:创建时间
  • SIZE:镜像的大小
后台运行
docker run -d <Other Parameters>
# 例如
docker run -d -p 127.0.0.1:33301:22 centos6-ssh
暴露端口
# 一共有三种形式进行端口映射
docker -p ip:hostPort:containerPort # 映射指定地址的主机端口到容器端口
# 例如:docker -p 127.0.0.1:3306:3306 映射本机3306端口到容器的3306端口
docker -p ip::containerPort # 映射指定地址的任意可用端口到容器端口
# 例如:docker -p 127.0.0.1::3306 映射本机的随机可用端口到容器3306端口
docer -p hostPort:containerPort # 映射本机的指定端口到容器的指定端口
# 例如:docker -p 3306:3306 # 映射本机的3306端口到容器的3306端口
映射数据卷
docker -v /home/data:/opt/data # 这里/home/data 指的是宿主机的目录地址,后者则是容器的目录地址
创建镜像

创建镜像的方法主要有三种:基于已有的镜像的容器创建,基于本地模板导入、基于Dockerfile创建

  • 基于已有容器创建

    该方法主要使用docker [container] commit 命令

    命令格式为

    docker [container] commit [options] container [repository[:TAG]]
    

    主要选项如下:

    • -a,–author="":作者信息
    • -c,–change=[]:提交的时候执行Dockerfile指令。包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILID|USER|VOLUME|WORKDIR等
    • -m,–message="":提交消息
    • -p,–pause=true:提交时暂停容器的运行
  • 基于Dockfile创建

    基于Dockfile创建是最常见的方式。Dockerfile是一个文本文件,利用给定的指令描述基于某个父镜像创建新镜像的过程。下面提供一个基于debian:stretch-slim镜像安装Python3环境:

    	FROM debian:stretch-slim
    	LABEL version="1.0" maintainer="docker user "
    	RUN apt-get update&&apt-get install -y python3&& apt-get clean && rm -rf /var/lib/apt/lists/*
    
    docker build -t name path	
    
存出和载入镜像
  • 存出镜像

    使用docke [image] save命令,可以导出镜像到本地文件。

    ## 指定imageID
    docker save -o spark.tar 2fd855b8adbd
    #指定repository和tag
    docker save -o spark-2.3.0-hadoop-2.8.tar gettyimages/spark:2.3.0-hadoop-2.8
    
  • 载入镜像

    使用docker [image] load 将导出的tar文件在导入到本地镜像库。使用方法如下

    docker load -i spakr.tar
    ##或者
    docker load < spark.tar
    
上传镜像

上传镜像使用push子命令实现。默认上传到Docker Hub官方仓库。命令格式如下

docker [image] push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]
导入和导出容器
  • 导出容器

    将一个已经创建的容器导出到一个文件,不管此时这个容器是否处于运行状态。使用如下命令:

    docker [container] export [-o|--output[=""]] container
    ##示例,ce5是容器id的开头
    docker export -o test.tar ce5
    docker export ce5 > test.tar
    
  • 导入容器

    导出的文件可以使用docker [container] import命令导入变成镜像,该命令的格式如下:

    docker import [-c|--change[=[]]] [-m|--message[=MESSAGE]] file|URL|-[REPOSITORY[:TAG]]
    
从容器内复制文件到宿主机以及从宿主机复制文件到容器
##从容器内复制文件或文件夹到宿主机
docker cp 容器名(或者容器ID):要拷贝的文件在容器里面的路径       要拷贝到宿主机的相应路径 
##从宿主机复制文件到容器内
 docker cp 要拷贝的文件路径 容器名(或者容器ID):要拷贝到容器里面对应的路径

三、 Dockerfile创建镜像详解

  • 指令说明

    Dockerfile中的指令一般格式为INSTRUCTION arguments,包括“配置指令(配置指令信息)"和”操作指令“(具体执行操作。

    配置指令

    指令说明
    ARG定义创建镜像过程中使用的变量
    FROM指定创建镜像的基础镜像
    LABEL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值