Hi guys, I'm trying to run OWASP ZAP in Docker to run multiple scan on targets. I run ZAP using python code without port forwarding (-p param) because I want to mange each ZAP instance separately by their Docker IP (Ex: curl
). But when I start ZAP Docker, I got it Docker IP (172.17.0.2) but I can not connect to port 8080 to access API. Here is my python code:
import docker
client = docker.from_env()
default_port = 8080 # do not change
zap_image = 'softwaresecurityproject/zap-stable:latest' # can move to config file
host_data_directory = '/home/zap-integration/data' # do not change
container_data_directory = '/zap/wrk/' # do not change
command = [
'zap.sh',
'-daemon',
'-host', '0.0.0.0',
'-port', '8080',
'-config', 'api.addrs.addr.regex=true',
'-config', 'api.disablekey=true'
]
def run_container(image_id, file_name):
container = client.containers.run(
image=image_id,
command=command,
detach=True,
network_mode='bridge',
user='zap',
volumes={host_data_directory: {'bind': container_data_directory, 'mode': 'rw'}}
)
container_ip = container_info['NetworkSettings']['IPAddress']
result = {}
result['agent_ip'] = container_ip
result['agent_port'] = default_port
return result