zoukankan      html  css  js  c++  java
  • 容器技术-Docker入门

    基础知识

    镜像image

    • Docker镜像文件(核心文件)

    容器container

    • image生成运行的实例

    仓库repository

    • 公共仓库

      • Docker Hub

        • 改为国内镜像(阿里云...)

    C/S架构

    基本命令

    验证安装

    • docker version
    • docker info

    启动docker服务

    • service docker start
    • systemctl start docker

    搜索

    • docker search [镜像名]

    image

    • 通过image文件才能生成容器,可以生成同时运行的多个容器

    • 列出所有image文件

      • docker image ls
    • 删除image文件

      • docker image rm [imagename]
    • 拉取image文件

      • docker image pull library/hello-world (library可省略)

    container

    • image生成容器实例,如果本地仓库没有这个image文件会自动从公共仓库拉取下来

      • docker container run hello-world

        • 新建容器
      • docker container start [containerID]

        • 运行已生成并且已停止的容器
    • 容器执行完会自动停止,提供服务的(例如Ubuntu)不会停止

      • 手动终止

        • docker container kill [containID]
    • 容器生成后就有两个文件分别是image文件和容器文件,关闭容器不会删除容器文件

    • 本机正在运行的容器

      • docker container ls
      • docker ps
    • 所有容器

      • docker container ls -all
    • 删除容器

      • docker container rm [containerID]
    • 容器输出(日志)

      • docker container log [containerID]
    • 进入容器

      • docker container exec -it [containerID] /bin/bash

    需要推广自己的软件,必须要制作image文件

    • Dockerfile文件

      • 配置image,生成二进制image文件
    • 制作自己的Docker容器

    安装实例

    -it、-itd

    • -i

      • 交互式操作
    • -t

      • 终端
    • -d

      • 容器后台运行,默认不会进入容器,需要docker exec 进入

    Nginx

    • 下载最新镜像

      • docker pull nginx:latest
    • 运行容器调整端口并在后台运行

      • docker run --name nginx-test -p 8089:80 -d nginx
    • 验证

      • curl 127.0.0.1:8089

    Node.js

    • 下载最新镜像

      • docker pull node:latest
    • 运行

      • docker run -itd --name node-test node
    • 进入容器验证

      • docker exec -it node-test /bin/bash
      • node -v

    MySQL

    • 下载最新镜像

      • docker pull mysql:latest
    • 运行命名设置端口设置root密码

      • docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=19971114abc mysql

        • -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务
    • 进入mysql容器

      • docker exec -it mysql-test bash
    • 登录mysql,查看版本

      • mysql -u root -p19971114abc

    Tomcat

    • 下载镜像

      • docker pull tomcat
    • 运行设置端口

    • 测试

    Redis

    • 镜像

      • docker pull redis:latest
    • 运行设置端口

      • docker run -itd --name redis-test -p 6379:6379 redis
    • 测试

      • docker exec -it redis-test /bin/bash
      • redis-cil

    MongoDB

    • 镜像

      • docker pull mongo:latest
    • 运行设置端口

      • docker run -itd --name mongo -p 27017:27017 mongo --auth
    • 进入容器

      • docker exec -it mongo mongo admin
    • 创建一个名为 admin,密码为 123456 的用户。

      • db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
    • 尝试使用上面创建的用户信息进行连接。

      • db.auth('admin', '123456')

    微服务

    思想

    • 软件把任务外包出去,让各种外部服务完成这些任务,软件本身只是底层服务的调度中心和组装层
    • 微服务很适合用 Docker 容器实现,每个容器承载一个服务。一台计算机同时运行多个容器,从而就能很轻松地模拟出复杂的微服务架构。
  • 相关阅读:
    Flume 读取实时更新的日志文件
    一些关于Flume收集日志的资料
    Java Pattern Matcher 正则表达式需要转义的字符
    多播 & multicast
    branch prediction
    一时紧张简单题都没做好,哈
    海量数据求中位数
    继续过Hard题目.0207
    压力工具代码及epoll使用
    C++里面mutable的作用
  • 原文地址:https://www.cnblogs.com/fengda1/p/14730624.html
Copyright © 2011-2022 走看看