Continuous Integration (CI) is a development practice where developers are required to integrate their code to shared repository several times a day. Each time when the code is checked in, it is verified using an automated build so failures can be detected early, notified and fixed.
Continuous Delivery is a series of practices designed to ensure that code can be rapidly and safely deployed to production by delivering every change to a production-like environment and ensuring business applications and services function as expected through rigorous automated testing. Since every change is delivered to a staging environment using complete automation, you can have confidence the application can be deployed to production with a push of a button when the business is ready.
Continuous Deployment is the next step of continuous delivery: Every change that passes the automated tests is deployed to production automatically. Continuous deployment should be the goal of most companies that are not constrained by regulatory or other requirements.
Reference: Image from puppet.com website