This is Team 1's Assignment 6 for ECE 4574 at Virginia Tech
To access Existing EC2 Servers Go to this link Main Website
- This project is to provide a Database and API for storage and retrieval of information.
- Version 3.0
- Docker is installed
- Your device is connected to the internet (to clone the repository and download required libraries)
- go ahead and gitclone this repo
git clone https://github.com/ldevr2t1/docker_storage.git - Run git checkout local
- Navigate into the web directory (i.e. cd web)
- run docker commands to get server running - may have to sudo
docker-compose builddocker-compose run
- Access your machine-ip address (docker-machine ip) in your web browser
The UI should be viewable at **192.168.99.100/v2/ui**
- If you cannot access the UI then change the 'host' address in the swagger.yaml file
- To get Machine ip address:
Run docker-machine ip - Update swagger.yaml:
host: "<Machine Ip-Address>" - Repeat steps 4 and 5
- To get Machine ip address:
Run the command docker stop [id], where [id] is the generated id number of your container. If you do not know what your container id is, use the command docker ps to view all running containers.
-
To change the server's IP-address edit the 'host' parameter in main.
File: web/swagger_server/__main__.pyapp.run(host='<your_address>', port=<port_number>)
-
Change the host parameter in the swagger.yaml file for the UI to work
web/swagger_server/server/swagger.yamlhost: "<your_address>:<port_number>"
- Change the <port_number> in the same files for configuring the host/ui address
- Go into the base directory /docker_pathfind and edit the docker-compose.yml
ports:- "<port_number>:<port_number>"
- Change the Dockerfile (i.e. change the EXPOSE #)
#Expose port # for testing-EXPOSE <port_number>
- Docker is installed
- VirtualBox is installed
- Your device is connected to the internet (to clone the repository and download required libraries)
In order to build a Docker Swarm locally on your machine, follow the steps below:
- Build the Manager with
docker-machine create <name_of_manager>, where name_of_manager is the name of your machine - Build the Workers with
docker-machine create <name_of_worker>, where name_of_worker is the name of your machine. You may repeat this as many times as you'd like, but remember the machine names!.
Run these commands in the following order:
- SSH into your manager directory with
docker-machine ssh <name_of_manager> - Run
docker swarm init --advertise-addr <ip_of_manager>to initialize the manager - Copy the returned command, and detach from the container with
^d - Now, ssh into the other workers using the command in part 1, pasting in the command returned from part 3.
- Run
docker-machine env <name_of_worker>to get access to a command in the commments. This command allows you to reroute your container from your own files, and is different depending on the OS. Run that command now. - go ahead and gitclone this repo
git clone https://github.com/ldevr2t1/docker_storage.git - Navigate to the cloned directory
- Run git checkout local
- Run
docker-compose -f docker-compose-swarm.yml build - Repeat step 1 and 5 with all workers.
- Run
docker-machine env <name_of_manager>to get access to a command in the commments. This command allows you to reroute your container from your own files, and is different depending on the OS. Run that command now. - run
docker stack deploy -c docker-compose-swarm.yml <name_of_service, where name_of_service is the name of your swarm.
- Type
docker-machine lsto see the addresses hosting your machines - Go to a browser and type :8000/v3/ui/, where address is the ip of one of the machines
docker-machine stop <name_of_machine>
In order to build a Docker Swarm remotely, follow the steps below:
- Docker is installed
- Your device is connected to the internet (to clone the repository and download required libraries)
Follow the steps located in Local Docker Swarm, but use docker-machine create driver amazonec2 --amazonec2-access-key <access_key> --amazonec2-secret-key <secret_key> <name_of_machine> instead.
-
To change the server's IP-address edit the 'host' parameter in main.
File: web/swagger_server/__main__.pyapp.run(host='<your_address>', port=<port_number>)
-
Change the host parameter in the swagger.yaml file for the UI to work
web/swagger_server/server/swagger.yamlhost: "<your_address>:<port_number>"
- Change the <port_number> in the same files for configuring the host/ui address
- Go into the base directory /docker_pathfind and edit the docker-compose.yml
ports:- "<port_number>:<port_number>"
- Change the Dockerfile (i.e. change the EXPOSE #)
#Expose port # for testing-EXPOSE <port_number>
- Joshua Chung
- David Gwizdala