The way of deploying servers & web-apps

I’m a mobile developer, but I’m interested in back-end and servers. I start to learn it but I have a few questions. I’m not sure I understand all the process right.

I stuck with a question of deploying. For example, if I want to deploy a web-app or game server.

  1. As I understand, the best way is using VPS. I will have a control over the virtual server, I’ll be able to install software which I want and so on. It’s better then classic hostings.
    Is it right?

  2. In short, server is a piece of software which is run all the time on the remote virtual hosting (cloud). I can run it using the screen linux command.
    Is it right?

  3. Also, it’s better to use docker. We install a docker on VPS, then upload a container and launch a server app in a that way. It will be faster and more reliable, then uplaoding file of the server via ssh or ftp. Right?
    Is everything will be ok with performance of the server app on docker in producation?

  4. What about the address? Should VPS have dedicated IP address everybody could achieve to communicate with my server? Or it should be get somewhere else?

  5. What about if I want to change a machine, VPS. Then, IP of the server will change. Old users will try to connect to the old IP and it will fail. Hot to deal with it?

  6. How to get HTTPS? This secure certificate. Is it something what I should buy? Or how to get it? What’s the seance of the secure if this cert can be just bought.

  7. How to keep my VPS secure? Using SSH and storing keys in safe place? Is it enough?

Thank you for the answers. I can’t find direct answers on these questions anywhere

Source: Docker Questions