vbr_ub1.sh 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/bin/sh
  2. find(){
  3. #sudo ovs-vsctl --data=bare --no-heading --columns=name find interface external_ids:container_id=**con1** external_ids:container_iface=**eth2**
  4. sudo ovs-vsctl --data=bare --columns=external_ids,name find interface
  5. }
  6. run() {
  7. BRIDGE=$2
  8. INTERFACE=$3
  9. CONTAINER=$4
  10. CONTAINER_DIR=$5
  11. IPADDR=$6
  12. IPMASK=$7
  13. GATEWAY=$8
  14. sudo ovs-vsctl show
  15. echo "Delete previous assigned ports for container: $CONTAINER..."
  16. sudo ovs-docker del-ports $BRIDGE $CONTAINER
  17. echo "starting container $CONTAINER..."
  18. #env $(cat $CONTAINER_DIR/.env | grep "#" -v) docker-compose -f $CONTAINER_DIR/docker-compose.yml up -d
  19. # docker run -d -p 6080:80 -p 5900:5900 -v /dev/shm:/dev/shm --name $CONTAINER --cap-add=NET_ADMIN -e USER=mickey -e PASSWORD=mouse -e RESOLUTION=1920x1080 --net=none --rm dorowu/ubuntu-desktop-lxde-vnc:focal
  20. docker run -d -v /dev/shm:/dev/shm --name $CONTAINER --device /dev/snd -e ALSADEV=hw:3,0 --cap-add=NET_ADMIN -e USER=mickey -e PASSWORD=mouse -e RESOLUTION=1920x1080 --net=none --rm ub1
  21. sleep 1
  22. echo "assign $INTERFACE to $CONTAINER with ipaddress $IPADDR/$IPMASK..."
  23. sudo ovs-docker add-port $BRIDGE $INTERFACE $CONTAINER --ipaddress=$IPADDR/$IPMASK --gateway=$GATEWAY
  24. #sudo ovs-docker add-port ovs-br1 eth2 con2 --ipaddress=192.168.6.11/24
  25. docker exec -it $CONTAINER ip route add default via $GATEWAY dev $INTERFACE
  26. docker exec -it $CONTAINER route
  27. sudo ovs-vsctl show
  28. }
  29. destroy(){
  30. BRIDGE=$2
  31. CONTAINER=$3
  32. echo "Stopping $BRIDGE ... $CONTAINER..."
  33. docker stop $CONTAINER
  34. echo "Delete previous assigned ports for container: $CONTAINER..."
  35. sudo ovs-docker del-ports $BRIDGE $CONTAINER
  36. sudo ovs-vsctl show
  37. }
  38. usage() {
  39. cat << EOF
  40. PARAM:
  41. run BRIDGE INTERFACE CONTAINER CONTAINER_DIR IPADDR MASK
  42. stop BRIDGE CONTAINER
  43. EOF
  44. }
  45. if [ $# -eq 0 ]; then
  46. usage
  47. exit 0
  48. fi
  49. case $1 in
  50. "run")
  51. run "$@"
  52. exit 0
  53. ;;
  54. "stop")
  55. destroy "$@"
  56. exit 0
  57. ;;
  58. "find")
  59. find "$@"
  60. exit 0
  61. ;;
  62. esac