Hi Jean, that's an interesting question!
So, as you know, both 教師 and 先生 are translated to "a teacher," but think this way. 教師 is just a job title you have as a teacher at any school (Grade schools to high schools), whereas 先生 is used to call anybody who teaches whatever for a living.
For example, if you were an English teacher at a high school, you can say 私は英語（の）教師です。when you say I am an English teacher. In this case you can also say 私は英語の先生です。, however, this does not sound formal so you would use 教師 for any formal occasions.
先生 can be any kind of teacher or an expert in a field, not limited to those in elementary, junior high and high schools. スイミングの先生、生け花の先生 etc. Doctors are usually called 先生 at hospitals/clinics.
So, if someone introduced himself to me saying 私は～教師です。, I would assume that he is a teacher at a school. And if he said 私は～の先生です。, I would know that he is an expert/ a teacher of whatever field but he could be working at a school, have a private class somewhere etc.
I'm not sure if I explained it to you well but I hope it helped!