I got virtual machine on some server and my URL is something like this.
Can I get DNS who will point to specific port ?
One more thing. If I cant do that, can my virtual machine on server be sub-domain of that server DNS ?
DNS has no concept of ports. DNS only points to the IP address.
The port to connect to for a particular service is determined by convention. For example the default port for HTTP is 80 and the default port for SSH is 22.
The only way to override the default port is to specify it in the URL (or on the command line for something like SSH). There is no way to specify port numbers in DNS. If you are running a website, your server must respond to HTTP requests on port 80 if you don't want to have an ugly port number in the URL.
It is not clear to me exactly what you are trying to accomplish.
If you want to run multiple sites on the same server, that is usually possible. You can run multiple sites from different domains or different subdomains all in the same server. You need to configure virtual hosts for that to work.
You may need to run a second server that runs a different technology (for example Tomcat to run Java or a Rails server to run Ruby). In that case, it is common to connect your additional server to your main server using a reverse proxy to remove the port number from the URL.
If you are trying to host your site at home and your ISP is blocking port 80, then you are out of luck. Your only options are to find different hosting or have a port number in the URL.
PORT settings is a hosting server side setting and has nothing to do with the DNS. When pointing a domain or sub domain to an IP the hosting server will control the port element via a virtual host file.
So in other words, simply put the A record to IP address and then have the virtual host file control what port the server operates on.