Some small capitalistic enterprise (workshops, small farms) might exist to cope with ‘minor’ problems of supply.
Remember, I’m giving you the classical definition of socialism (not to be confused with ‘social democracy’ which is a different tradition).
Actually, you’re giving the Marxist definition of socialism. Generally speaking, ‘socialism’ today is used as another word for ‘social democracy’.
Communism is an ideology of revolutionary repossession of power by the working classes, following a specific programme outlined by Marx and Engels, resulting in a global dictatorship of the working classes, with the collective ownership of the means of production and the end of the capitalist market. In a communist state each works according to his or her ability, and receives according to his or her need. At least, that’s the theory. In practice, it is violent, degrading and unworkable.
Socialism on the other hand refers to a broad range of different approaches, including Marxist or neo-Marxist approaches, but also including trade unionism, anarcho-syndicalism, social democracy and the welfare state, which aim to orient the means of production in favour of the whole of society. These approaches can range from nationalising the means of production, the distribution of company shares among workers, high taxes for the rich to pay for welfare for the poor, leaving the market untouched but taking state control of services such as schools, hospitals and public transport, selective sales taxes or rations on luxury goods to ensure a fair distribution of basic food and clothing for the poor, or any number of other solutions.
On this broader definition, socialism is just any system that sees a more equal distribution of public goods for all as the main aim of society. This might, in practice, involve a lot of free-market economics, as is the case in many European countries with modern social-democrat governments, or even in communist China. The difference between a socialist free market and a libertarian one, however, is that socialists want free trade in order to ensure the fairest distribution of goods, and are not afraid to limit free trade if that will achieve greater equality, while libertarians believe that free trade is an end in itself, even if it leads to the rich becoming super-rich and the poor starving.