1、安装Linux虚拟机

  • 下载&安装VirtualBoxhttps://www.virtualbox.org/,要开启CPU虚拟化

  • 下载&安装Vagrant

    • https://app.vagrantup.com/boxes/search Vagrant官方镜像仓库
    • https://www.vagrantup.com/downloads.html Vagrant下载
  • 打开window cmd窗口,运行

    Vagrant init centos/7
    

    即可初始化一个centos7系统,在哪个目录下执行就安装在哪

  • 运行

    vagrant up
    

    即可启动虚拟机。系统root用户的密码是vagrant

  • vagrant其他常用命令

    • vagrant ssh
      

      自动使用vagrant用户连接虚拟机。

      • vagrant upload source [destination][name|id]
        

        上传文件

    • https://www.vagrantup.com/docs/cli/init.html Vagrant 命令行

  • 默认虚拟机的ip地址不是固定ip,开发不方便

    • 修改Vagrantfile

      • config.vm.network “private_network”, ip: “192.168.56.10”

      • 这里的ip需要在物理机下使用ipconfig命令找到改为这个指定的子网地址

      • 重新使用

        vagrant up
        

        启动机器即可。然后再

        vagrant ssh
        

        连接机器

  • 默认只允许ssh登录方式,为了后来操作方便,文件上传等,我们可以配置允许账号密码登录

    • Vagrant ssh进去系统之后

      vi /etc/ssh/sshd_config
      

      修改PasswordAuthentication yes

      重启服务

      service sshd restart
      
  • 以后可以使用提供的ssh连接工具直接连接

  • 注意:VirtualBox会与包括但不限于如下软件冲突,需要卸载这些软件,然后重启电脑;冲突的软件:红蜘蛛,360,净网大师(有可能)等

  • 修改linux的yum源

    • 备份原yum

      mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
      
    • 使用新yum源

      curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
      
    • 生成缓存

      yum makecache
      

2、安装docker

Docker安装文档:https://docs.docker.com/install/linux/docker-ce/centos/

  • 卸载系统之前的docker

    sudo yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine
    
  • 2、安装Docker-CE

    • 安装必须的依赖

      sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
      
    • 设置docker repo的yum位置

      sudo yum-config-manager \
      --add-repo \
      https://download.docker.com/linux/centos/docker-ce.repo
      
    • 安装 docker, 以及 docker-cli

      sudo yum install docker-ce docker-ce-cli containerd.io
      
    • 启动 docker

      sudo systemctl start docker
      
    • 设置 docker 开机自启

      sudo systemctl enable docker
      
    • 测试 docker 常用命令, 注意切换到 root 用户下

      https://docs.docker.com/engine/reference/commandline/docker/

    • 配置 docker 镜像加速

      阿里云,容器镜像服务针对 Docker 客户端版本大于 1.10.0 的用户,您可以通过修改 daemon 配置文件来使用加速器

      sudo mkdir -p /etc/docker
      sudo tee /etc/docker/daemon.json <<-'EOF'
      {"registry-mirrors": ["https://5955cm2y.mirror.aliyuncs.com"]
      }
      EOF
      sudo systemctl daemon-reload
      sudo systemctl restart docker
      

3、运行常使用容器

其他见各笔记,或官方文档

docker 安装 mysql

  • 下载镜像文件

    • docker pull mysql:8.0.27
      
  • 创建实例并启动

    • docker run -p 3306:3306 --name mysql \
      -v /mydata/mysql/mysql-files:/var/lib/mysql-files \
      -v /mydata/mysql/log:/var/log/mysql \
      -v /mydata/mysql/data:/var/lib/mysql \
      -v /mydata/mysql/conf:/etc/mysql \
      -e MYSQL_ROOT_PASSWORD=123456 \
      -d mysql:8.0.27 \
      --lower_case_table_names=1
      
      **参数说明**-p 3306:3306: 将容器的 3306 端口映射到主机的 3306 端口-v /mydata/mysql/conf:/etc/mysql: 将配置文件夹挂载到主机-v /mydata/mysql/log:/var/log/mysql: 将日志文件夹挂载到主机-v /mydata/mysql/data:/var/lib/mysql/: 将配置文件夹挂载到主机
    -e MYSQL_ROOT_PASSWORD=root: 初始化 root 用户的密码
    --lower_case_table_names=1 忽略表名大小写
    
    • MySQL 配置
    vi /mydata/mysql/conf/my.cnf
    
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    
    • mysql优化,在mysqld下加上

      [mysqld]
      performance_schema_max_table_instances=400
      table_definition_cache=400
      performance_schema=off
      table_open_cache=64
      innodb_buffer_pool_chunk_size=64M
      innodb_buffer_pool_size=64M
      

注意: 解决 MySQL 连接慢的问题
在配置文件中加入如下, 并重启 mysql
[mysqld]
skip-name-resolve
解释:
skip-name-resolve: 跳过域名解析

  • 通过容器的 mysql 命令行工具连接

    docker exec -it mysql mysql -uroot -p123456
    
  • 设置 root 远程访问

    mysql8之前:
    grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;mysql8之后:
    先创建用户
    create user 'root'@'%' identified by'Hadoop3!';
    再给用户授权
    grant all privileges on *.* to 'root'@'%';最后刷新
    flush privileges;
    
  • 进入容器文件系统

    docker exec -it mysql /bin/bash
    
  • 容器自启动

    docker update --restart=always 容器ID或名称
    

docker 安装 redis

  • 下载镜像文件

    docker pull redis
    
  • 创建实例并启动

    mkdir -p /mydata/redis/conf
    touch /mydata/redis/conf/redis.conf
    docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
    -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
    -d redis redis-server /etc/redis/redis.conf
    

    配置持久化:Redis默认是不持久化的。在配置文件redis.conf中添加:

    appendonly yes
    

    redis 自描述文件:

    https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf

  • 使用 redis 镜像执行 redis-cli 命令连接

    docker exec -it redis redis-cli
    

docker 安装 nacos

docker run --env MODE=standalone --name nacos \
-v /mydata/nacos/conf:/home/nacos/conf -d -p 8848:8848 nacos/nacos-server:1.1.4

docker 安装 sentinel

可以制作一个镜像并启动它,暴露访问

docker run --name sentinel -d -p 8858:8858 -d bladex/sentinel-dashboard:1.6.3

docker 安装 zipkin

docker run -d -p 9411:9411 openzipkin/zipkin
或者
docker run --env STORAGE_TYPE=elasticsearch --env ES_HOSTS=180.76.181.210:9200 openzipkin/zipkin

4、docker打包镜像

构建镜像

1、先把java项目使用maven插件打包成jar包。

2、将.jar包放在有docker环境的服务器中

3、先将.jar文件放入指定目录,并新建Dockerfile文件

Dockerfile文件内容:

# java8运行环境
FROM openjdk:11
# 作者名称
MAINTAINER Dome# 切换工作目录
WORKDIR /root/java# 添加demo-start-1.0.0.jar文件到docker环境内
ADD demo-start-1.0.0.jar /root/java/demo-start-1.0.0.jar# 暴露端口8080
EXPOSE 8080# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone# 运行命令
ENTRYPOINT ["java", "-server", "-Xms256m", "-Xmx256m", "-jar", "/root/java/demo-start-1.0.0.jar"]

4、在当前目录下运行指令,构建镜像

docker build -t demo:0.0.1 .

说明:
-t 参数指定构建成后,镜像的仓库、标签等
demo:0.0.1 demo镜像名称、0.0.1 镜像标签

5、直接运行镜像试试能不能成功

docker run -p 8080:8080 -t demo:0.0.1

Docker镜像上传到仓库

1、先创建Docker hub账号,记住username password后面验证时,需要使用到。

2、先登录Docker hub

docker login -u username -p password

3、将构建好的镜像打上标签

docker tag demo:0.0.1 username/demo:0.0.1

说明:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
本地镜像名称:版本号 DockerHub账号名/镜像名称:版本号

注:

如果需要上传到其他镜像创建上面命令的改动如下(以阿里云为例子):

先登录:

docker login -u username [registry.cn-shenzhen.aliyuncs.com](<http://registry.cn-shenzhen.aliyuncs.com/>)

回车后输入密码,则登录成功

打标记:

docker tag demo:0.0.1 [registry.cn-shenzhen.aliyuncs.com](<http://registry.cn-shenzhen.aliyuncs.com/>)/username/demo:0.0.1

上传镜像:

docker push [registry.cn-shenzhen.aliyuncs.com](<http://registry.cn-shenzhen.aliyuncs.com/>)/username/demo:0.0.1

VirtualBox和Docker安装相关推荐

  1. 在Win7下利用VirtualBox和Vagrant安装Docker

    2019独角兽企业重金招聘Python工程师标准>>> 1.安装VirtualBox 和 Vagrant 首先下载安装VirtualBox 和 Vagrant的windows版本,两 ...

  2. Windows10下的docker安装与入门 (一)使用docker toolbox安装docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  3. vagrant给vmbox创建虚拟机及docker安装mysql和redis

    一.安装vmbox和vagrant 1.下载地址 Vagrant: https://releases.hashicorp.com/vagrant/2.2.5/vagrant_2.2.5_x86_64. ...

  4. Docker 安装、使用

    文章目录 Docker 教程 1. 前言 2. Docker 应用场景 3. Docker 优点 3.1 快速,一致地交付应用程序 3.2 响应式部署和扩展 3. 在同一硬件上运行更多工作负载 4. ...

  5. Docker安装openjdk-11,并查看对应的版本

    Step 1:拉取镜像 命令:拉取镜像 docker pull openjdk:11 这里我们需要用到Java11,静待下载镜像完成即可 命令:查看镜像 docker images 可以看到已经有一个 ...

  6. Docker学习笔记——(一)docker简介与docker安装

    Docker简介与安装 1. Docker简介 docker是什么? docker架构原理 docker有什么用? docker容器与虚拟机的区别 虚拟机与Docker的体系结构说明: 整体对比: 2 ...

  7. 主机访问虚拟机中docker安装的mysql

    一.背景 开发环境中,经常需要mysql本地环境,方便开发.准备在本机的虚拟机里面用docker准备一个mysql环境. 二.版本信息 操作系统:Windows 10 家庭版 Oracle VM Vi ...

  8. docker安装nexus私服

    docker安装Maven私服nexus3 1 简介 2 Maven 2.1 Nexus私服 2.2 Docker 4 私服搭建过程 4.1 外网操作 4.1.1 下载和安装docker 4.1.2 ...

  9. win10安装docker及docker安装镜像

    准备文件 轻量级的虚拟机.linux系统.linux客户端 安装 安装virtualBox好后导入虚拟机文件centos,启动虚拟机,以root/123456登录. 使用linux客户端工具链接lin ...

最新文章

  1. 设计模式 之美 -- 工厂方法模式
  2. SpringBoot 搭建基于 minio 的高性能存储服务
  3. Windows 显示环境变量
  4. 安卓连接linux软件,利用 Telnet 无线控制安卓手机 无需 Root
  5. ExtJs与JavaScript的call方法
  6. eclipse打开jar包出现乱码问题解决方法
  7. 数字语音信号处理学习笔记——语音信号的短时时域分析(2)
  8. php自定义框架,「php 框架」自定义php框架(篇一) - seo实验室
  9. 怎样正确使用和维护微型计算机,下篇:微型计算机应该怎样进行维护与保养
  10. Serverless 实战 —— 快速搭建 SpringBoot 应用
  11. nginx 与php版本,nginx-php不同版本问题
  12. 纯新手DSP编程--5.15--CCS简述
  13. eviews计算covar_covariance(eviews做协整检验步骤)
  14. 短视频剪辑如何入门?短视频剪辑常用的配音软件
  15. 用python处理excel数据、求线性回归方程的r值_Python 线性回归计算r-squared方法
  16. 安卓手机能提取当前页面的链接吗_如何获取一个app内的网页地址?
  17. C#通过调用WinApi打印PDF文档类,服务器PDF打印、IIS PDF打印
  18. 数据挖掘总结之消极学习与积极学习
  19. python的for语句中i未被定义_python 报错 类名没有被定义
  20. 超强接口协作平台如何打造:细数Apifox的六把武器

热门文章

  1. 相机对焦和调焦距的区别是什么 ?
  2. linux下打包C++ Qt可执行程序出现的问题总结
  3. python labelImg xml 格式的数据集解析及可视化
  4. 三点法求三维坐标精度误差评估实验
  5. 哈哈哈 一个小玩意 感觉就是一个引子 可以拿来玩
  6. (阅读笔记)SecureNN: 3-Party Secure Computation for Neural Network Training
  7. 10个值得珍藏的4K高清壁纸网站推荐
  8. “开宝五子棋陪练”软件的隐私政策
  9. 语雀桌面端技术架构实践
  10. 医学图像算法工程师面经