Faits : A. Par jugement du 12 mai 2016, le Tribunal pénal de l'arrondissement de la Sarine a notamment reconnu X._ coupable de tentative de lésions corporelles graves, lésions corporelles simples, mise en danger de la vie d'autrui, menaces et contraintes (faits du 24-25 septembre 2014), lésions corporelles simples, empêchements d'accomplir un acte officiel et dommages à la propriété d'importance mineure (faits du 21 mars 2014), violence ou menace contre les autorités et les fonctionnaires (faits du 22 mars 2016). Il l'a également reconnu coupable de différentes contraventions de droit cantonal, en particulier de contravention à la loi cantonale fribourgeoise d'application du Code pénal, notamment pour refus de se légitimer malgré la sommation justifiée d'un agent de police (faits du 21 mars 2014 et du 22 mars 2016). Il l'a acquitté des chefs de prévention d'injure (faits du 21 mars 2014), de séquestration (faits du 24-25 septembre 2014) et de violence ou menace contre les autorités et les fonctionnaires (faits du 21 mars 2014). Le Tribunal de première instance l'a condamné à une peine privative de liberté ferme de 44 mois, sous déduction de la détention subie, ainsi qu'au paiement d'une amende de 1'000 francs. Il a révoqué le sursis octroyé le 8 juin 2012 par le Ministère public Bern-Mittelland et l'a astreint, en application de l'art. 63 CP, au suivi d'un traitement ambulatoire tel que préconisé par l'expert. B. Statuant sur appel de X._, la Cour d'appel pénal du Tribunal cantonal fribourgeois l'a partiellement admis par arrêt du 1er septembre 2017. Elle a ramené la peine privative de liberté ferme à 38 mois, sous déduction de la détention subie, peine complémentaire à la peine privative de liberté de 50 jours prononcée le 28 avril 2016, à celle de 20 jours prononcée le 7 juillet 2016 et à celle de 60 jours prononcée le 14 décembre 2016. Par ailleurs, elle a renoncé à révoquer le sursis octroyé le 8 juin 2012. Pour le surplus, elle a confirmé la décision de première instance. En substance, la cour cantonale a retenu les faits pertinents suivants. B.a. Le 21 mars 2014 à 6h40, X._, sous l'influence de l'alcool, a pris part à une bagarre. Lors de l'intervention de la police, il a tenté de se soustraire à son contrôle en prenant la fuite, puis a refusé de se légitimer malgré les demandes répétées des agents. Il a été maîtrisé au sol et menotté, puis acheminé au poste de police, où il a craché à maintes reprises. Il a en outre insulté et menacé à réitérées reprises les agents de police, en particulier la gendarme A._. Lors de la fouille de sécurité, il a donné un coup de tête à cette dernière, ce qui a eu pour conséquence de lui casser une dent. Au vu de son état d'excitation, il a été emmené à un autre poste de police, où il a continué à souiller les locaux et à insulter les agents. Il a également endommagé une chaise en la lançant contre la porte. A._ a déposé plainte pour menaces, injure et lésions corporelles simples le même jour. D._, chef de service adjoint du Service des bâtiments (SBat) de l'Etat de Fribourg et C._, chef du secteur gérance, ont déposé plainte pénale le 2 avril 2014, reprochant à X._ d'avoir souillé la cellule et cassé une chaise d'audition. B.b. Le 24 septembre 2014, en fin de soirée, une dispute a éclaté entre X._ et sa compagne, B._, à leur domicile. B._ lui a demandé de quitter leur domicile. X._ a saisi sa compagne par les poignets et l'a poussée contre la fenêtre du salon qui s'est cassée; ils ont tous deux subi des blessures, respectivement au pouce et au coude. Dans la chambre à coucher, X._ a violemment poussé B._ sur le lit. Il s'est mis sur elle, lui a dit qu'il allait la tuer et a tenté de l'étrangler une première fois. Dans la salle de bain, il a poussé sa compagne contre le mur et l'a saisie au cou durant environ 5 secondes avant de lui asséner un coup au visage. Elle a tenté de se défendre en lui donnant un coup de poing. Craignant qu'il la tue, B._ a voulu quitter l'appartement en sautant par la fenêtre du salon. X._ lui a alors donné un coup de pied dans le ventre. Revenus dans la salle de bain, X._ s'est mis sur elle dans la baignoire. Il l'a saisie au cou et l'a étranglée pendant 15 secondes au point qu'elle n'arrivait plus à respirer. Elle a essayé d'écarter ses doigts et a finalement réussi à se retourner dans la baignoire. X._ a continué à la stranguler depuis l'arrière et, lorsqu'elle se débattait, l'a saisie au cou avec ses deux mains. Au total, X._ a tenté d'étrangler B._ une quinzaine de fois, avec une ou les deux mains, tout en lui disant: " Je vais te tuer, c'est fini pour toi, de toute façon t'es morte ce soir vers 03h00 ou 04h00, ça me fait mal pour ton père, je l'aimais bien... ". En plus des strangulations, il l'a bousculée dans la baignoire. A un moment donné, B._ a réussi à le repousser et à sortir de la baignoire. Cependant, il l'a rattrapée et, toujours dans la salle de bain, a recommencé à l'étrangler encore plus fort. Elle lui disait " laisse-moi parler une dernière fois ". Ensuite, X._ est allé chercher un couteau à viande dans la cuisine, dont la lame n'était pas tranchante mais l'extrémité pointue. Il a obligé B._ à s'asseoir dans la baignoire et a placé la lame contre sa gorge, en appuyant, sans bouger. Immédiatement, elle a mis ses deux mains contre la lame du couteau. Elle a réussi à sortir de la baignoire et ils se sont débattus avec cet objet. Elle a tenté en vain de le lui prendre des mains, mais X._ a réussi à la remettre dans la baignoire. Il l'a tirée par les cheveux et a posé son cou contre le bord de la baignoire. Il a pris le couteau et a appuyé à nouveau la lame contre sa gorge. B._ s'est débattue et a réussi à saisir le couteau que son compagnon a finalement lâché. Elle s'est enfuie de l'appartement pour se réfugier chez une amie. B.c. Le 22 mars 2016, vers 20h30, X._ et une autre personne ont écouté de la musique à haut volume et crié à proximité d'un temple. Sommé de décliner son identité, X._ a refusé. Il a également insulté et menacé les agents. C. X._ forme un recours en matière pénale auprès du Tribunal fédéral contre la décision cantonale dont il requiert, avec suite de frais et dépens, la réforme en ce sens qu'il est acquitté du chef de lésions corporelles simples (faits du 21 mars 2014), dommages à la propriété d'importance mineure (faits du 21 mars 2014), refus de se légitimer malgré sommation (faits du 21 mars 2014 et du 22 mars 2016), tentative de lésions corporelles graves (faits du 24-25 septembre 2014) et de mise en danger de la vie d'autrui (faits du 24-25 septembre 2014) et qu'il est condamné à une peine privative de liberté de 24 mois dont 6 mois ferme et 18 avec sursis. Subsidiairement, il conclut à l'annulation de l'arrêt entrepris et au renvoi de la cause à la cour cantonale. Il sollicite en outre le bénéfice de l'assistance judiciaire. Invités à se déterminer sur le recours, la cour cantonale et le ministère public se sont référés à la décision cantonale et ont renoncé à formuler des observations. A._, le SBat et B._ n'ont pas formulé d'observation dans le délai imparti.