252 lines
4.7 KiB
Ruby
252 lines
4.7 KiB
Ruby
# pull alpine image
|
|
docker_image 'alpine' do
|
|
tag '3.1'
|
|
action :pull_if_missing
|
|
end
|
|
|
|
# unicode characters
|
|
docker_network 'seseme_straße' do
|
|
action :create
|
|
end
|
|
|
|
###########
|
|
# network_a
|
|
###########
|
|
|
|
# defaults
|
|
docker_network 'network_a' do
|
|
action :create
|
|
end
|
|
|
|
# docker run --net=
|
|
docker_container 'echo-base-network_a' do
|
|
repo 'alpine'
|
|
tag '3.1'
|
|
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
|
|
port '1337'
|
|
network_mode 'network_a'
|
|
action :run
|
|
end
|
|
|
|
docker_container 'echo-station-network_a' do
|
|
repo 'alpine'
|
|
tag '3.1'
|
|
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
|
|
port '31337'
|
|
network_mode 'network_a'
|
|
action :run
|
|
end
|
|
|
|
############
|
|
# network_b
|
|
############
|
|
|
|
execute 'create network_b' do
|
|
command 'docker network create network_b'
|
|
not_if { ::File.exist?('/marker_delete_network_b') }
|
|
end
|
|
|
|
file '/marker_delete_network_b' do
|
|
action :create
|
|
end
|
|
|
|
# Delete a network
|
|
docker_network 'network_b' do
|
|
action :delete
|
|
end
|
|
|
|
###########
|
|
# network_c
|
|
###########
|
|
|
|
# specify subnet and gateway
|
|
docker_network 'network_c' do
|
|
subnet '192.168.88.0/24'
|
|
gateway '192.168.88.1'
|
|
action :create
|
|
end
|
|
|
|
# docker run --net=
|
|
docker_container 'echo-base-network_c' do
|
|
repo 'alpine'
|
|
tag '3.1'
|
|
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
|
|
port '1337'
|
|
network_mode 'network_c'
|
|
action :run
|
|
end
|
|
|
|
docker_container 'echo-station-network_c' do
|
|
repo 'alpine'
|
|
tag '3.1'
|
|
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
|
|
port '31337'
|
|
network_mode 'network_c'
|
|
action :run
|
|
end
|
|
|
|
###########
|
|
# network_d
|
|
###########
|
|
|
|
# create a network with aux_address
|
|
docker_network 'network_d' do
|
|
subnet '192.168.89.0/24'
|
|
gateway '192.168.89.1'
|
|
aux_address ['a=192.168.89.2', 'b=192.168.89.3']
|
|
end
|
|
|
|
docker_container 'echo-base-network_d' do
|
|
repo 'alpine'
|
|
tag '3.1'
|
|
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
|
|
port '1337'
|
|
network_mode 'network_d'
|
|
action :run
|
|
end
|
|
|
|
docker_container 'echo-station-network_d' do
|
|
repo 'alpine'
|
|
tag '3.1'
|
|
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
|
|
port '31337'
|
|
network_mode 'network_d'
|
|
action :run
|
|
end
|
|
|
|
###########
|
|
# network_e
|
|
###########
|
|
|
|
# specify overlay driver
|
|
docker_network 'network_e' do
|
|
driver 'overlay'
|
|
action :create
|
|
end
|
|
|
|
###########
|
|
# network_f
|
|
###########
|
|
|
|
# create a network with an ip-range
|
|
docker_network 'network_f' do
|
|
driver 'bridge'
|
|
subnet '172.28.0.0/16'
|
|
gateway '172.28.5.254'
|
|
ip_range '172.28.5.0/24'
|
|
end
|
|
|
|
docker_container 'echo-base-network_f' do
|
|
repo 'alpine'
|
|
tag '3.1'
|
|
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
|
|
port '1337'
|
|
network_mode 'network_f'
|
|
ip_address '172.28.5.5'
|
|
action :run
|
|
end
|
|
|
|
docker_container 'echo-station-network_f' do
|
|
repo 'alpine'
|
|
tag '3.1'
|
|
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
|
|
port '31337'
|
|
network_mode 'network_f'
|
|
action :run
|
|
end
|
|
|
|
###########
|
|
# network_g
|
|
###########
|
|
|
|
# create an overlay network with multiple subnets
|
|
docker_network 'network_g' do
|
|
driver 'overlay'
|
|
subnet ['192.168.0.0/16', '192.170.0.0/16']
|
|
gateway ['192.168.0.100', '192.170.0.100']
|
|
ip_range '192.168.1.0/24'
|
|
aux_address ['a=192.168.1.5', 'b=192.168.1.6', 'a=192.170.1.5', 'b=192.170.1.6']
|
|
end
|
|
|
|
docker_container 'echo-base-network_g' do
|
|
repo 'alpine'
|
|
tag '3.1'
|
|
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
|
|
port '1337'
|
|
network_mode 'network_g'
|
|
action :run
|
|
end
|
|
|
|
docker_container 'echo-station-network_g' do
|
|
repo 'alpine'
|
|
tag '3.1'
|
|
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
|
|
port '31337'
|
|
network_mode 'network_g'
|
|
action :run
|
|
end
|
|
|
|
###########
|
|
# network_h
|
|
###########
|
|
|
|
# connect same container to multiple networks
|
|
docker_network 'network_h1' do
|
|
action :create
|
|
end
|
|
|
|
docker_network 'network_h2' do
|
|
action :create
|
|
end
|
|
|
|
docker_container 'container1-network_h' do
|
|
repo 'alpine'
|
|
tag '3.1'
|
|
network_mode 'network_h1'
|
|
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
|
|
not_if { ::File.exist?('/marker_network_h') }
|
|
action :run
|
|
end
|
|
|
|
file '/marker_network_h' do
|
|
action :create
|
|
end
|
|
|
|
docker_network 'network_h2 connector' do
|
|
container 'container1-network_h'
|
|
network_name 'network_h2'
|
|
action :connect
|
|
end
|
|
|
|
# disconnet from a network
|
|
docker_network 'network_h1 disconnector' do
|
|
container 'container1-network_h'
|
|
network_name 'network_h1'
|
|
action :disconnect
|
|
end
|
|
|
|
##############
|
|
# network_ipv6
|
|
##############
|
|
# IPv6 enabled network
|
|
docker_network 'network_ipv6' do
|
|
enable_ipv6 true
|
|
subnet 'fd00:dead:beef::/48'
|
|
action :create
|
|
end
|
|
|
|
##############
|
|
# network_ipv4
|
|
##############
|
|
docker_network 'network_ipv4' do
|
|
action :create
|
|
end
|
|
|
|
##################
|
|
# network_internal
|
|
##################
|
|
docker_network 'network_internal' do
|
|
internal true
|
|
action :create
|
|
end
|