大纲:

1、为什么选择docker,和传统的机器以及虚拟机器区别。

2、环境准备(vagrant和virtualbox.box)

3、创建centos/7

4、创建docker

5、根据docker创建一个tomcat和mysql

 

1、为什么选择docker,和传统的机器以及虚拟机器区别。

第一种很久很久以前使用的:首先需要一台物理机器,其次需要一个操作系统,最后就是你的应用(项目在哪里运行的)

弊端:严重浪费物理资源,成本高,不利于迁移扩展,部署慢。

第二种目前很多公司还在用的:首先同样一台物理机器,其次一个操作系统,再其次就是虚拟机VM,可以有多个。

优势:相对于第一种而言,成本相对较低,提高了物理资源的利用,容易扩展。

弊端:没有充分利用内存资源,因为每次创建一个虚拟机他都会问物理机索要很多的内存和cpu资源,并且移植性差。

第三种目前很多互联网公司在用的,比如阿里,网易等:同样需要物理机器,其次是操作系统,再次是容器,最后容器中是具体的实例。

优势:与上面的比较他不会一上来就要很多的系统资源,我们可以合理的进行分配。在VgrantFile中配置。并且可移植性比较强,不管是mac、linux、windows。

下载安装vagrant

01 :访问Vagrant官网:https://www.vagrantup.com/

02 :点击Download,Windows,MacOS,Linux等

03: 选择对应的版本

04: 傻瓜式安装

05: cmd命令行输入vagrant,测试是否安装成功

 

下载安装virtualbox

01 :访问VirtualBox官网 https://www.virtualbox.org/

02: 选择左侧的“Downloads”

03 :选择对应的操作系统版本

04 :傻瓜式安装

05: [win10中若出现]安装virtualbox快完成时立即回滚,并提示安装出现严重错误

(1)打开服务

(2)找到Device Install Service和Device Setup Manager,然后启动

(3)再次尝试安装

若是win7则需要在修改iosi问enble(具体忘记了,不知道去百度,电脑开机出现windows后立马按F2进入再修改)

 

1.5.1.3 安装centos7

01: 创建first-docker-centos7文件夹,并进入其中[目录路径不要有中文字符]

02 :在此目录下打开cmd,运行vagrant init centos/7 此时会在当前目录下生成Vagrantfile

(里面所有内容如下,不一样则修改成功一样的,其他都是注释我就补贴出来了:

Vagrant.configure("2") do |config|
 config.vm.box = "centos/7" config.vm.network "public_network"
config.vm.provider "virtualbox" do |vb|
    vb.memory = "3000"
    vb.name = "sxs-centos7-001"
    vb.cpus = 2
  endend
)

03 :运行vagrant up[注意不要运行,拉取远端的centos7太慢],此时会找centos7的镜像,本地有就用本地的,本地没有就会拉取远端的

04 :准备centos7的box

(1):选中命令行中提示的链接

比如 https://vagrantcloud.com/centos/boxes/7/versions/1905.1/providers/virtualbox.box

(2):复制到迅雷中下载

(3):vagrant box add centos/7 D:\迅雷下载\virtualbox.box  (virtualbox.box的路径,最好不带中文)

(4):vagrant box list 查看本地的box[这时候可以看到centos/7]

 

05 根据本地的centos7 box创建虚拟机

vagrant up[打开virtual box,可以发现centos7创建成功]

06 vagrant基本操作

(1):vagrant ssh 进入刚才创建的centos7中

(2) :vagrant status

查看centos7的状态

(3):vagrant halt

停止centos7

(4):vagrant destroy

删除centos7

(5):vagrant status

查看当前vagrant创建的虚拟机

(6):Vagrantfile中也可以写脚本命令,使得centos7更加丰富

但是要注意,修改了Vagrantfile,要想使正常运行的centos7生效,必须使用vagrant reload

 

xshell链接:

sudo -i  到root用户

vi /etc/ssh/sshd_config   修改PasswordAuthentication yes(注意不要看出了是sshd_config,不是ssh_config)

输入passwd 进行密码修改(第一次修改密码,第二次确认密码,两次输入一样的)

重启一下:systemctl restart sshd

登陆:先看看ip,输入ip a找到和自己相同网断的ip进行链接,端口还是22,用户名是root,密码是你刚刚设置的密码。

 

安装docker

01 :进入centos7  vagrant ssh

02 :卸载之前的docker(下面命令全部复制一次执行)

sudo yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

03: 安装必要的依赖(一次执行)

sudo yum install -y yum-utils \

device-mapper-persistent-data \

lvm2

04 :设置docker仓库

sudo yum-config-manager \

--add-repo \

https://download.docker.com/linux/centos/docker-ce.repo

 

05 安装docker(此步骤下载很慢,如果有阿里加速器会快很多大概在十几秒内,没有加速器需要两个多小时)

sudo yum install -y docker-ce docker-ce-cli containerd.io

 

06 启动docker

sudo systemctl start docker && sudo systemctl enable docker(&&前面是自己启动,后面的开机启动)

07 测试docker安装是否成功

sudo docker run hello-world

01 :创建tomcat容器

docker pull tomcat

docker run -d --name my-tomcat -p 9090:8080 tomcat

02 :创建mysql容器

docker run -d --name my-mysql -p 3301:3306 -e MYSQL_ROOT_PASSWORD=sxs123 --privileged mysql

03 进入到容器里面

docker exec -it containerid /bin/bash

docker pull 拉取镜像到本地

docker run 根据某个镜像创建容器

-d 让容器在后台运行,其实就是一个进程

--name 给容器指定一个名字

-p 将容器的端口映射到宿主机的端口

docker exec -it 进入到某个容器中并交互式运行

containerid表示你的容器,比如上面的my-mysql