(command.CommandList
  children: [
    (C {(Id.KW_Set set)} {(-e)})
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IMAGE)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [19]
                )
              ]
            )
          terminator: (Token id:Id.Op_Semi val:';' span_id:23)
        )
        (C {(shift)})
      ]
    )
    (C {(cd)} {(/tmp)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXCLUDE)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ('--exclude .dockerenv --exclude Dockerfile ') 
                ('        --exclude dev/console --exclude dev/pts --exclude dev/shm ') ('        --exclude etc/hostname --exclude etc/hosts --exclude etc/mtab --exclude etc/resolv.conf')
              )
            }
          spids: [36]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CONTAINER)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:48)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(docker)} {(create)} {($ Id.VSub_DollarName '$IMAGE')} {(/dev/null)})
                      ]
                    )
                )
              )
            }
          spids: [46]
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {(docker)} {(export)} {(DQ ($ Id.VSub_DollarName '$CONTAINER'))})
        (C {(tar)} {(-xf)} {(-)} {($ Id.VSub_DollarName '$EXCLUDE')})
      ]
      negated: F
    )
    (command.Simple
      words: [{(docker)} {(rm)} {(DQ ($ Id.VSub_DollarName '$CONTAINER'))}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:85)
          fd: -1
          arg_word: {(/dev/null)}
        )
      ]
    )
    (C {(mkdir)} {(-p)} {(etc)})
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:103)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 118
          stdin_parts: [
            ('127.0.0.1\tlocalhost\n')
            ('::1\tlocalhost ip6-localhost ip6-loopback\n')
            ('fe00::0\tip6-localnet\n')
            ('ff00::0\tip6-mcastprefix\n')
            ('ff02::1\tip6-allnodes\n')
            ('ff02::2\tip6-allrouters\n')
          ]
        )
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:107)
          fd: -1
          arg_word: {(etc/hosts)}
        )
      ]
    )
    (command.Simple
      words: [{(cat)}]
      redirects: [
        (redir.HereDoc
          op: (Token id:Id.Redir_DLess val:'<<' span_id:122)
          fd: -1
          here_begin: {(EOF)}
          here_end_span_id: 135
          stdin_parts: [
            ('nameserver 8.8.8.8\n')
            ('nameserver 8.8.4.4\n')
            ('nameserver 2001:4860:4860::8888\n')
            ('nameserver 2001:4860:4860::8844\n')
          ]
        )
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:126)
          fd: -1
          arg_word: {(etc/resolv.conf)}
        )
      ]
    )
    (command.Simple
      words: [{(printf)} {(SQ (Token id:Id.Lit_Chars val:linuxkit span_id:140))}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:143)
          fd: -1
          arg_word: {(etc/hostname)}
        )
      ]
    )
    (C {(ln)} {(-s)} {(/proc/mounts)} {(etc/mtab)})
    (C {(tar)} {(cf)} {(-)} {(.)})
  ]
)