Shoppers in the UK have been told to "be responsible" and think of others such as NHS workers, after panic-buying amid the coronavirus outbreak.
Environment Secretary George Eustice said there was more than enough food to go around - but the challenge for shops is keeping shelves stocked.
It comes as supermarkets have been overwhelmed by increased purchasing.
Another 53 people with coronavirus have died in England, bringing the total of deaths in the country to 220.
Meanwhile, cafes, pubs and restaurants across the UK have closed as part of measures to stop the virus spreading.
And, on Saturday night, the National Trust announced it was closing its parks and gardens from midnight "to help restrict the spread of the coronavirus".
"Frankly we should all be ashamed," said Prof Stephen Powis, medical director at NHS England, who said panic-buyers are depriving NHS staff of the supplies they need.
"These are the very people that we all need to look after perhaps us or our loved ones in the weeks to come."
Earlier this week, a critical care nurse made an emotional video appeal for people to stop panic-buying and leave some goods for others who need to stay healthy.
Also speaking at the news conference in Downing Street on Saturday, the head of the British Retail Consortium, Helen Dickinson, said: "There is plenty of food in the supply chain."
"The issue is around people and lorries" getting food onto shelves quick enough, she said.
She said the food industry was experiencing "a peak in demand" like at Christmas, but "without the four-month build-up period."
"There is £1bn more food in people's houses than there was three weeks ago, so we should make sure we eat some of it," she said.
Mr Eustice said the government recognised it was a "challenging time" but that "buying more than you need means others may be left without."
He added: "There's no shortage of food. Food manufacturing has geared up to meet an increase in demand and it is up by 50%."
Asked whether he can rule out rationing or ration books, Mr Eustice said it was up to supermarkets to decide whether to put limits on how much of each item shoppers can buy.
Some supermarkets have already imposed limits after some members of the public started buying items like toilet roll in bulk.
And many stores including Tesco, Asda, Aldi, and Lidl have said they are hiring thousands of staff to meet the unprecedented demand.
Tesco, the UK's biggest supermarket, said it wants to take on 20,000 temporary workers "to help feed the nation".
Labour said the government had been too slow and too quiet to reassure people that were was enough food.
Prof Powis, of NHS England, also reiterated the importance of people avoiding social contact.
"It's not for somebody else to follow, it's for you to follow, it's for me to follow, it's for everybody to follow," he said.
"This is all our problem and if we do it together, it will be an effective strategy. If you do it, you follow the advice, you will be saving somebody's life.
"This is the time in your lifetime whereby your action can save somebody's life. It is as simple and as stark as that."
In other developments:
- Trade unions and a former minister have called for financial help for self-employed workers in the UK. It comes after the government promised to pay 80% of salaries of staff kept on by employers
- John Lewis is the latest High Street shop to close all of its stores. However, Waitrose shops will stay open, apart from those in department stores at Watford, Southampton and Bluewater
- Sandwich chain Pret a Manger has announced the closure of all its 400 UK outlets from Saturday evening
- The Big Issue magazine - which sells around 60,000 copies every week - will stop being sold from next week
- Homeless people will be housed in hotels in central London to protect them against the virus, the Mayor of London Sadiq Khan said
- Children are putting up paintings of rainbows in their windows after schools closed on Friday
- And a hotel in the Scottish Highlands which laid off staff and asked them to leave their accommodation has said the decision was an "admin error"
- The death toll passes 11,000 worldwide, as confirmed cases of coronavirus pass 275,000