Skip to content

Instantly share code, notes, and snippets.

@caliburn1994
Last active October 7, 2020 04:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save caliburn1994/ccba9acb1ec8636d9993fb47c724c2b5 to your computer and use it in GitHub Desktop.
Save caliburn1994/ccba9acb1ec8636d9993fb47c724c2b5 to your computer and use it in GitHub Desktop.
Install Centos 7 using vagrant and install Docker in Centos 7. 通过Vagrant安装Centos7,然后再Centos7安装Docker
文件结构
.
|--bootstrap.sh
|--Vagrantfile

该代码用于安装一个centos虚拟机,并安装Docker

#!/usr/bin/env bash
# install required package
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum makecache fast
# install docker
yum install -y docker-ce docker-ce-cli containerd.io
# install docker-compose https://docs.docker.com/compose/install/
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > docker-compose
mv docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# add vagrant(user name) to docker group , get rights to vagrant
gpasswd -a vagrant docker
systemctl restart docker
# docker expose tcp socket
sudo tee /usr/lib/systemd/system/docker-tcp.socket <<-'EOF'
[Unit]
Description=Docker Socket for the API
[Socket]
ListenStream=2375
BindIPv6Only=both
Service=docker.service
[Install]
WantedBy=sockets.target
EOF
# run docker as startup service
systemctl enable docker-tcp.socket
systemctl stop docker
systemctl start docker-tcp.socket
systemctl start docker
# other tools
yum install -y vim
yum install -y net-tools
# for timezone
timedatectl set-timezone Asia/Tokyo
yum install -y ntpdate
# Autocomplete of Docker Compose
# ref: https://docs.docker.com/compose/completion/
yum install bash-completion bash-completion-extras
curl -L https://raw.githubusercontent.com/docker/compose/1.25.4/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
# config.vm.network "public_network", ip: "192.168.0.180",bridge:"ens33"
config.vm.provision :shell, path: "bootstrap.sh"
config.vm.provision "shell",run: "always", inline: <<-SHELL
# hostname manager1
systemctl start docker-tcp.socket
systemctl start docker
ntpdate asia.pool.ntp.org
SHELL
# synchronize folders (directories)
# before syn, you should install sshft by command "vagrant plugin install vagrant-sshfs"
# config.vm.synced_folder "Django", "/Django", type: "sshfs"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment