Docker Swarm and Consul Integration

I have a docker swarm cluster working with 3 managers and 3 workers. Deploying services is working correctly on the ingress network. I am trying to integrate registration of the containers with a consul server. I have tried a couple of different approaches and haven’t been able to figure out how to get this to work. I have tried using a registrator container running on the worker I am testing with configured to communicate to with a consul server (not running as a container).

When I use docker run to start a container, the container registers successfully with the consul server from the worker with registrator running.
When I use docker swarm to deploy a docker service, the container successfully starts on the worker with registrator, but does not register with consul.
When I use docker swarm to deploy without registrator it also does not register with consul

I am not sure if I am having a communication problem from the ingress network or if there is another way I should be approaching this. An inspect of the manager node seems to identify the configuration for the consul server successfully:

    "SwarmOptions": {
        "IsSwarm": true,
        "Address": "",
        "Discovery": "consul://",
        "Agent": true,
        "Master": true,
        "Host": "tcp://",
        "Image": "swarm:latest",
        "Strategy": "spread",
        "Heartbeat": 0,
        "Overcommit": 0,
        "ArbitraryFlags": [],
        "ArbitraryJoinFlags": [],
        "Env": null,
        "IsExperimental": false

Does anyone have a successful integration with docker swarm and consul for service registration working?