IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker快速入门到实战 -> 正文阅读

[系统运维]Docker快速入门到实战

一、Docker介绍

  • 什么是Docker

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
    
    Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
    
    容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
    
  • 为什么要用Docker

    1、快速部署
    
    2、快速动态扩容
    
    3、资源隔离
    

二、Docker基础

2.1 Docker安装及配置

2.1.2 Centos 7环境安装Docker

## 关闭防火墙
$ systemctl stop firewalld.service vi /etc/selinux/config
$ cd /etc/yum.repos.d/
## 下载阿里云docker社区版 yum源
$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
## 安装Docker ce 社区版
$ yum install -y docker-ce.x86_64
## 设置开机启动
$ wget systemctl enable docker
## 更新xfsprogs
$ wget yum -y update xfsprogs
## 启动docker
$ systemctl start docker

2.1.2 Win10 环境安装Docker

2.1.3 Mac 环境安装Docker

  • 下载地址 Docker Desktop on Mac,双击Docker.dmg,打开安装程序,然后将 Docker 图标拖到 Applications 文件夹中

2.2 Docker配置阿里云镜像加速

Docker安装完成后默认的镜像仓库地址是 https://hub.docker.com/,下载镜像比较慢,可以配置阿里云镜像加速,步骤如下:

  1. 登录阿里云,访问https://cr.console.aliyun.com/cn-shenzhen/instances/mirrors

  2. 根据操作提示进行操作

    ##Ubuntu
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
    ##Centos
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://9sxuudkl.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
    ##Mac及Windows请见https://cr.console.aliyun.com/cn-shenzhen/instances/mirrors的操作文档
    

镜像加速

2.3 Docker基本操作命令

  • 构建容器:docker run 镜像标识|镜像名称[tag]

    • -i :表示以交互模式运行容器
    • -d :表示后台运行容器,并返回容器ID
    • -t :为容器重新分配一个伪输入终端
    • -p :将容器内某个端口映射宿主机上的某个端口。
    • -e :传递环境变量
    • --network :指定网络模式
    • --add-host :往容器内添加host地址
    • --name :为容器指定名称
  • 查看正在运行中的容器:docker ps

  • 查询所有容器:docker ps -a

  • 启动容器:docker start CONTAINER_ID / CONTAINER_NAME

  • 停止容器:docker stop CONTAINER_ID / CONTAINER_NAME

  • 重启容器:docker restart CONTAINER_ID / CONTAINER_NAME

  • 删除容器:docker rm CONTAINER_ID / CONTAINER_NAME

    • -f :强制删除
  • 停止并删除:docker stop CONTAINER_ID / CONTAINER_NAME && docker rm CONTAINER_ID / CONTAINER_NAME

  • 查看容器详细信息:docker inspect CONTAINER_ID / CONTAINER_NAME

  • 查看容器日志:docker logs CONTAINER_ID / CONTAINER_NAME

  • 进入容器:docker exec -it CONTAINER_ID / CONTAINER_NAME /bin/bash

  • 查找镜像:docker search CONTAINER_NAME

  • 查看本地镜像:docker images

  • 拉取镜像:docker pull 镜像标识|镜像名称[tag]

  • 删除镜像:docker rm 镜像标识|镜像名称[tag]

三、Docker安装常用镜像

举例了mysql、Redis、MongoDB、Elasticsearch、Nginx 5个常用的镜像部署,如果有需要其他的镜像部署示例,可在评论区进行留言,如果自己会肯定会回复,如果自己不会我先去学一波再回复。。。

3.1 Docker安装Mysql

$ docker search mysql
$ docker pull mysql:5.7
$ docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

3.2 Docker安装Redis

$ docker search redis
$ docker pull redis
$ docker run -itd --name redis -p 6379:6379 redis

3.3 Docker安装MongoDB

$ docker search mongo
$ docker pull mongo
$ docker run -itd --name mongo -p 27017:27017 mongo --auth

3.4 Doker安装Elasticsearch

$ docker search elasticsearch
$ docker pull elasticsearch:7.6.2
$ mkdir -p /mydata/elasticsearch/config
$ mkdir -p /mydata/elasticsearch/data
$ chmod 777 -R /mydata
$ echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
$ docker run --name elasticsearch -p 9200:9200 -p 9300:9300  -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx512m" -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.6.2

3.5 Docker安装Nginx

$ docker search nginx
$ docker pull nginx
$ docker run --name nginx -p 8080:80 -d nginx

四、Docker自定义镜像

4.1 初识Dockerfile

  • FROM:基于哪个镜像
  • MAINTAINER:注明作者
  • COPY:复制文件进入镜像(只能用相对路径,不能用绝对路径)
  • ADD:复制文件进入镜像(假如文件是.tar.gz文件会解压)
  • WORKDIR:指定工作目录,假如路径不存在会创建路径
  • ENV:设置环境变量
  • EXPOSE:暴露容器端口
  • RUN:在构建镜像的时候执行,作用于镜像层面
  • ENTRYPOINT:在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条
  • CMD:在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条容器启动后执行默认的命令或者参数,允许被修改命令格式:
    • shell命令格式:RUN yum install -y lsof
    • exec命令格式:RUN [ "yum","install" ,"-y" ,"lsof"]

4.2 Dockerfile构建Jar包镜像

  • jar包所在目录:/var/www/website

  • 创建dockerfile

    $ touch dockerfile
    
  • 编辑dockerfile

    FROM adoptopenjdk/openjdk8-openj9:alpine-slim
    MAINTAINER programmer_grouth xxxxx@163.com
    ENV LANG C.UTF-8
    WORKDIR /website
    RUN mkdir /website/logs
    ARG JAR_FILE=website.jar
    COPY ${JAR_FILE} app.jar
    EXPOSE 9015
    ENTRYPOINT ["java","-jar","-Xms512m","-Xmx1536m","-Dfile.encoding=UTF-8","app.jar"]
    

在这里插入图片描述

  • 构建镜像
    $ docker build -t website:v1 .
    

在这里插入图片描述

  • 查看镜像
    $ docker images
    

在这里插入图片描述

  • 运行容器
    $ docker run -itd -p 9015:9015 -v /var/www/website:/website --name=website website:v1  /bin/bash
    

五、Docker-Compose的介绍与安装

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

5.1 Compose 安装

$ yum install -y epel-release

在这里插入图片描述

$ yum install -y python-pip

在这里插入图片描述

$ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose==1.24.1

在这里插入图片描述

$ docker-compose version

在这里插入图片描述

5.2 Docker-Compose快速搭建个人博客

  • 创建docker-compose.yml文件

    version: "3.3"
        
    services:
      db:
        image: mysql:5.7
        volumes:
          - db_data:/var/lib/mysql
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: somewordpress
          MYSQL_DATABASE: wordpress
          MYSQL_USER: wordpress
          MYSQL_PASSWORD: wordpress
        
      wordpress:
        depends_on:
          - db
        image: wordpress:latest
        volumes:
          - wordpress_data:/var/www/html
        ports:
          - "8000:80"
        restart: always
        environment:
          WORDPRESS_DB_HOST: db:3306
          WORDPRESS_DB_USER: wordpress
          WORDPRESS_DB_PASSWORD: wordpress
          WORDPRESS_DB_NAME: wordpress
    volumes:
      db_data: {}
      wordpress_data: {}
    
  • 启动

    $ mkdir my_wordpress
    $ cd my_wordpress
    $ docker-compose up -d
    

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

六、结语

感谢每位给笔者点双击的伙伴,谢谢您的支持!!!更多内容请扫码关注微信公共号,笔者会持续更新其他精彩内容。
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-27 12:16:30  更:2021-08-27 12:17:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:08:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码