Full-duplex (FD), Device-to-Device (D2D) and non-orthogonal multiple access (NOMA) are promising wireless communication techniques to improve the utilization of spectrum resources. Meanwhile, introducing FD, D2D and NOMA in cellular networks is very challenging due to the complex interference problem. To deal with the complex interference of FD D2D underlaying NOMA cellular networks, power allocation (PA) is extensively studied as an efficient interference management technique. However, most of the previous research works on PA to optimize energy efficiency only consider the system framework of partially joint combining techniques of FD, D2D and NOMA, and the constraints of optimization problem are very different. In this paper, in order to further improve the energy efficiency of a system, a dual-layer iteration power allocation algorithm is proposed to eliminate the complex interference. The outer-layer iteration is to solve the non-linear fractional objective function based on Dinkelbach, and the inner-layer iteration is to solve the non-convex optimization problem based on D.C. programming. Then, the non-convex and non-linear fractional objective function is transformed into a convex function to solve the optimal power allocation. In this approach, FD D2D users reuse the spectrum with downlink NOMA cellular users. Imperfect self-interference (SI) cancellation at the FD D2D users and the successive interference cancellation (SIC) at the strong NOMA user are considered in the system framework. The optimization problem is constructed to maximize the system’s energy efficiency with the constraints of successful SIC, QoS requirements, the maximum transmit power of BS and FD D2D users. Numerical results demonstrate that the proposed algorithm outperforms the traditional orthogonal multiple access (OMA) in terms of energy efficiency with a higher system sum rate.