Docker的安装使用

本文详细介绍了Docker的安装配置、镜像和容器操作,包括如何从Docker仓库拉取和推送镜像,以及如何通过阿里云镜像仓库进行操作。此外,还介绍了docker-compose的使用,如何通过yaml文件一键创建和管理多个容器。
摘要由CSDN通过智能技术生成

一. 简介

  • Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的linux或windows机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口.
  • Docker支持将软件编译成一个镜像,然后配置好镜像中的各个软件,将镜像发布出去,其他使用者可以直接使用这个镜像,运行中的这个镜像称为容器,容器启动是非常快速的.
  • 在这里插入图片描述

二. 核心概念

  • docker主机(Host) : 安装了docker程序的机器(docker程序直接安装在操作系统上),一个物理或者虚拟的机器用来运行docker守护进程和容器
  • docker客户端(client) : 连接docker主机进行操作
  • docker仓库(registry) : 用来保存各种打包好的软件镜像
  • docker镜像(images) : 软件打包好的镜像,存放在docker仓库中
  • docker容器(container) : 镜像启动后的实例称为一个容器,容器是运行的一个或一组应用

三. 安装配置及镜像操作

  1. 设置仓库

    1. 卸载原有的旧版docker sudo apt-get remove docker docker-engine docker.io containerd runc
    2. 更新apt索引包 sudo apt-get update
    3. 安装依赖包用于通过HTTPS来获取仓库sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
    4. 添加docker官方的GPG秘钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    5. 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥sudo apt-key fingerprint 0EBFCD88
    6. 设置使用稳定版仓库sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
      在这里插入图片描述
  2. 安装 Docker Engine-Community

    1. 更新apt索引包sudo apt-get update
    2. 安装最新版 Docker Engine-Community sudo apt-get install docker-ce docker-ce-cli containerd.io如果想装指定版本,请转到下一步
    3. 列出仓库中可用版本apt-cache madison docker-ce然后使用版本字符串(第二列)安装指定版本sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
  3. 常用操作

    • 检索: docker search 关键字 eg:docker search mysql
    • 拉取: docker pull 镜像名:tag :tag是可选的 不加默认就是latest最新版
    • 列表: docker images
    • 删除: docker rmi image-id
  4. 使用阿里云镜像

    1. 创建阿里云镜像仓库

    2. 从阿里仓库拉取sudo docker pull registry.cn-hangzhou.aliyuncs.com/climb-xu/mysql-docker:[镜像版本号]

    3. 将镜像推送到阿里仓库

      1. 登录sudo docker login --username=2271613696@qq.com registry.cn-hangzhou.aliyuncs.com
      2. 推送sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/climb-xu/mysql-docker:[镜像版本号]``````sudo docker push registry.cn-hangzhou.aliyuncs.com/climb-xu/mysql-docker:[镜像版本号]
      3. 如果机器位于阿里云的vpc网络 那么可以使用registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名,速度将得到提升并且将不会损耗公网流量

四. 容器操作

  • 根据镜像创建容器并启动: docker run --name mytomcat -d -p 8888:8080 tomcat–name命名(可以不给) -d 后台运行 -p 将主机的8888端口映射到容器的8080端口,不做映射访问不了
  • 查看容器列表:docker ps [-a]-a参数可以参看所有容器,不加的话查看正在运行的容器
  • 停止运行中的容器: docker stop 容器id
  • 启动已有的容器: docker start 容器id
  • 删除容器: docker rm 容器id

五. docker-compose

docker-compose是一个docker官方的开源项目,用来简化容器的创建,可以根据yml一键创建多个容器

创建docker-compose.yml(不能用其他名字)

eg:

version: '2' #版本
services:
 mq_node01: 
     image: rmohr/activemq:5.15.9 #镜像
     restart: always #重启容器时是否重启服务
     container_name: mq_node01 #容器名称
     ports: #映射端口
            - "61611:61616"
            - "8161:8161"
        volumes: #挂载目录
            - /dockerData/activemq_cluster/mq_node01/conf:/opt/apache-activemq-5.15.9/conf
    mq_node02:
        image: rmohr/activemq:5.15.9
        restart: always
        container_name: mq_node02
        ports:
            - "61612:61616"
            - "8162:8161"
        volumes:
            - /dockerData/activemq_cluster/mq_node02/conf:/opt/apache-activemq-5.15.9/conf
    mq_node03:
        image: rmohr/activemq:5.15.9
        restart: always
        container_name: mq_node03
        ports:
            - "61613:61616"
            - "8163:8161"
        volumes:
            - /dockerData/activemq_cluster/mq_node03/conf:/opt/apache-activemq-5.15.9/conf
networks:
    default:
        external:
            name: docker-compose-zookeeper_defaul #设置默认的network,不设置的话,默认会自己创建一个

命令:

#查看帮助
docker-compose -h

# -f  指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定。
docker-compose -f docker-compose.yml up -d 

#启动所有容器,-d 将会在后台启动并运行所有的容器
docker-compose up -d

#停用移除所有容器以及网络相关
docker-compose down

#查看服务容器的输出
docker-compose logs

#列出项目中目前的所有容器
docker-compose ps

#构建(重新构建)项目中的服务容器。服务容器一旦构建后,将会带上一个标记名,例如对于 web 项目中的一个 db 容器,可能是 web_db。可以随时在项目目录下运行 docker-compose build 来重新构建服务
docker-compose build

#拉取服务依赖的镜像
docker-compose pull

#重启项目中的服务
docker-compose restart

#删除所有(停止状态的)服务容器。推荐先执行 docker-compose stop 命令来停止容器。
docker-compose rm 

#在指定服务上执行一个命令。
docker-compose run ubuntu ping docker.com

#设置指定服务运行的容器个数。通过 service=num 的参数来设置数量
docker-compose scale web=3 db=2

#启动已经存在的服务容器。
docker-compose start

#停止已经处于运行状态的容器,但不删除它。通过 docker-compose start 可以再次启动这些容器。
docker-compose stop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

climb.xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值