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 build
docker-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__.py
app.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.yaml
host: "<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 ls
to 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__.py
app.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.yaml
host: "<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