Downloads – Oracle VM VirtualBox


![]()
![]()

Downloads | Vagrant by HashiCorp

![]()
安装位置可改可不改








查看box列表
vagrant box list
删除box
vagrant box remove
新增box
vagrant box add centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box

vagrant init centos7

目录下多了个文件

vagrant up

目录下多了个文件夹

VirtualBox可以看到虚拟机正在运行 ,说明虚拟机创建成功并可以正常运行

vagrant ssh

![]()
请执行以下命令后重试:
set VAGRANT_PREFER_SYSTEM_BIN=0
exit
vagrant 虚拟机的四个state:
running(运行),poweroff(关机),saved(保存),not created(未创建)
查看当前目录下vagrant实例状态
vagrant status
查看本机上所有vagrant实例状态
vagrant global-status

启动:vagrant up,执行后状态是 running
停止:vagrant halt,执行后状态是 poweroff
暂停:vagrant suspend,执行后状态是 saved
重启:vagrant reload,执行后状态是 running
销毁:vagrant destroy,执行后状态是 not created
创建在其他目录下的虚拟机指定ID可以直接删掉:

剩下这个virtualbox目录下的虚拟机实例删不掉,并且状态是“not created”,不知道什么鬼







先找到vagrant秘钥文件本地存放位置
vagrant ssh-config


找到秘钥文件选中点击打开

用户秘钥就又回来了



su root
默认密码是vagrant

- yum update
-
- yum install -y yum-utils
yum -y install vim
- yum remove docker \
- docker-client \
- docker-client-latest \
- docker-common \
- docker-latest \
- docker-latest-logrotate \
- docker-logrotate \
- docker-engine
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install -y docker-ce docker-ce-cli containerd.io
启动:
systemctl start docker
设置开机自启(随vagrant虚拟机启动而启动):
systemctl enable docker
停止:
systemctl stop docker
重启:
systemctl restart docker
查看版本:
docker version
- # 检索远程仓库相关镜像
- docker search xxx
-
- # 不指定版本号时拉取最新镜像
- docker pull xxx
-
- # 拉取指定版本镜像
- docker pull xxx:版本号
-
- # 查看本地已拉取的镜像
- docker images
-
- # 根据镜像创建容器并运行
- docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-
- -d, --detach=false, 指定容器运行于前台还是后台,默认为false
- -i, --interactive=false, 打开STDIN,用于控制台交互
- -t, --tty=false, 分配tty设备,该可以支持终端登录,默认为false
- -p, --publish=[], 指定宿主机和Docker端口映射,冒号前为宿主机端口号,后为docker端口号
-
- -e, --env=[], 指定环境变量,容器中可以使用该环境变量
- -u, --user="", 指定容器的用户
- -w, --workdir="", 指定容器的工作目录
- -c, --cpu-shares=0, 设置容器CPU权重,在CPU共享场景使用
- -m, --memory="", 指定容器的内存上限
- -h, --hostname="", 指定容器的主机名
- -v, --volume=[], 给容器挂载存储卷,挂载到容器的某个目录
-
- --name="", 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
- --volumes-from=[], 给容器挂载其他容器上的卷,挂载到容器的某个目录
- --cap-add=[], 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities
- --cap-drop=[], 删除权限,权限清单详见:http://linux.die.net/man/7/capabilities
- --cidfile="", 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法
- --cpuset="", 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU
- --device=[], 添加主机设备给容器,相当于设备直通
- --dns=[], 指定容器的dns服务器
- --dns-search=[], 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件
- --entrypoint="", 覆盖image的入口点
- --env-file=[], 指定环境变量文件,文件格式为每行一个环境变量
- --expose=[], 指定容器暴露的端口,即修改镜像的暴露端口
- --link=[], 指定容器间的关联,使用其他容器的IP、env等信息
- --lxc-conf=[], 指定容器的配置文件,只有在指定--exec-driver=lxc时使用
-
- --net="bridge", 容器网络设置:
- bridge 使用docker daemon指定的网桥
- host //容器使用主机的网络
- container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源
- none 容器使用自己的网络(类似--net=bridge),但是不进行配置
-
- --restart="no", 指定容器停止后的重启策略:
- no:容器退出时不重启
- on-failure:容器故障退出(返回值非零)时重启
- always:容器退出时总是重启
- --rm=false, 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
-
-
- # 查看正在运行的容器
- docker ps
-
- # 查看所有创建的容器
- docker ps -a
-
- # 停止指定容器运行
- docker stop 容器ID
-
- # 强制删除指定容器
- docker rm -f 容器ID
- docker pull redis
-
- docker images
-
- docker run -itd --name redis_01 -p 6379:6379 redis:latest --requirepass abc@123
-
- docker ps
- docker pull postgres
-
- docker images
-
- docker run -itd --name pgsql_01 -p 5432:5432 -e POSTGRES_PASSWORD=abc@123 postgres
-
- docker ps
- # 进入name为pgsql_01的容器,交互方式为bash
- docker exec -it pgsql_01 bash
-
- # 指定登录用户postgres
- psql -U postgres -W
-
- # 输入创建容器时设置的密码
- abc@123
-
- # 退出postgresql
- quit;
-
- # 退出bash
- exit
- docker pull mysql
-
- docker images
-
- docker run -itd --name mysql_01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc@123 mysql:latest
-
- docker ps
- # 进入name为mysql_01的容器,交互方式为bash
- docker exec -it mysql_01 bash
-
- # 指定登录用户root
- mysql -uroot -p
-
- # 输入创建容器时设置的密码
- abc@123
-
- # 退出mysql(分号不能省略)
- quit;
-
- # 退出bash(分号可省略)
- exit;
操作演示:

新建连接选择mysql类型

主机:localhost
端口:3306
用户名:mysql默认用户root
密码:docker创建mysql容器时设的密码:abc@123

配置ssh隧道(Xshell登录虚拟机的配置)
主机:127.0.0.1
端口:2222
用户名:vagrant
验证方法:公钥
私钥地址:选择vagrant创建虚拟机时生成的私钥文件


- docker pull rabbitmq:3-management
-
- docker run -itd --name rabbitmq_01 -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=abc@123 rabbitmq:3-management
-
- docker ps
管理页URL:http://localhost:15672