Hello, my name is***** and I have over 20 years of experience as a veterinarian. I am sorry to hear that your fellow isn't feeling well, and is vomiting any solid food that he is eating. I am pleased to hear that he can keep water down, but this sort of vomiting can quickly lead to dehydration, even with his ability to drink water.
In most cases vomiting is triggered by eating something they should not, too much table food, too many treats or something they find outdoors.
More serious causes of vomiting include toxin ingestions, viral or bacterial infections, a dietary allergy or sensitivity, inflammatory bowel disease, internal organ failure (kidney or liver disease), or a full or partial gastrointestinal obstruction. If he were an older fellow then an abdominal mass could also be a possible cause, though much less common at his age.
In a younger dog, especially if he never finished his vaccine series, a viral infection such as parvo virus, toxin ingestion, or a foreign body leading to a partial or full gastrointestinal obstruction would be the most likely cause of his vomiting. An obstruction would explain why water stays down, but solids do not.
Ideally since this has lingered for a couple days he would see a veterinarian now.
If that isn't possible for whatever reason there are some things we can try at home, but if he's not improving quickly he should see a veterinarian for an examination, some diagnostic testing, intravenous fluids and injectable medication to settle his stomach.
To try and settle his stomach at home you can give either:
1) Pepcid ac (famotidine) at a dose of one 10mg tablet per 20 to 40 pounds of body weight every 12 hours
2) Prilosec (omeprazole) at a dose of one 10mg tablet per 20 to 40 pounds of body weight every 24 hours
These are acid reducers and may help settle his stomach and get him feeling better. They are quite safe and can be used for several days if necessary.
I would pick up all food for now and water for a couple hours to allow his stomach to settle after the acid reducers.
In a couple hours when you give him water make sure it is in small amounts only. If he drinks too much too quickly that can lead to vomiting. You can also offer ice cubes to lick. To get some electrolytes in you can offer him a 50:50 mix of pedialyte or clear beef or chicken broth and water.
If there is no vomiting for 12 hours offer a bland diet of 1/3 boiled, minced, white, skinless chicken or boiled, lean hamburger and 2/3 boiled, plain, white rice mixed with some low salt chicken or beef broth to make it easy to lap up and swallow and get more fluids in.
If things go well and he does eat and doesn't vomit feed him the bland diet for 2 to 3 days then slowly start to mix back in his regular food, a little more at each meal. It should take about 5 to 7 days to slowly convert him back to his regular diet.
If he continues to vomit even with the acid reducers, runs a fever (more than 103F rectally), or has a lower then normal temperature (less then 99F), has a tense painful belly or if he refuses to eat he should see a veterinarian for an examination, diagnostics, injectable anti-nausea drugs intravenous fluids and supportive care.
Please let me know if you have any further questions.