docker搭建

lilygg 2019-11-04

大纲:

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
end

end
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

相关推荐